### Godot version

4.0 beta 10

### System information

Windows 10, Vulkan Renderer

### Issue description

In 2D scenes with sprites, when the sprite's `flip_h` and/or `flip_v` property is enabled, the normal map is flipped with the image, causing lighting to be reversed. While this does technically make sense, in a game where You have a bunch of sprites that flip and use normal maps, the only solution is to generate normal maps for both facing directions.
![image](https://user-images.githubusercontent.com/47702559/209426338-6257d66c-a965-4793-a7bb-5a635a136267.png)

Ultimately the fix is simple: Invert the red channel in normal maps on horizontally flipped sprites, and invert the green channel on vertically flipped sprites.

### Steps to reproduce

1) Create a Sprite2D
2) Add a Diffuse Texture and Normal Map 
3) Add a 2D Light to the scene
4) Enable `flip_h` and/or `flip_v` on the Sprite2D

### Minimal reproduction project

[Normal not flipped.zip](https://github.com/godotengine/godot/files/10298203/Normal.not.flipped.zip)

uint32_t start = 0;
		uint32_t instance_count = 0;
		RID tex;
		RS::CanvasItemTextureFilter filter = RS::CANVAS_ITEM_TEXTURE_FILTER_MAX;
		RS::CanvasItemTextureRepeat repeat = RS::CANVAS_ITEM_TEXTURE_REPEAT_MAX;
		GLES3::CanvasShaderData::BlendMode blend_mode = GLES3::CanvasShaderData::BLEND_MODE_MIX;
		Color blend_color = Color(1.0, 1.0, 1.0, 1.0);
		Item *clip = nullptr;
		RID material;
		GLES3::CanvasMaterialData *material_data = nullptr;
		CanvasShaderGLES3::ShaderVariant shader_variant = CanvasShaderGLES3::MODE_QUAD;
		const Item::Command *command = nullptr;
		Item::Command::Type command_type = Item::Command::TYPE_ANIMATION_SLICE; 
		uint32_t primitive_points = 0;
		bool lights_disabled = false;
	};
	
	
	
	struct DataBuffer {
		GLuint buffer = 0;
		GLuint light_ubo = 0;
		GLuint state_ubo = 0;
		uint64_t last_frame_used = -3;
		GLsync fence = GLsync();
	};
	struct State {
		LocalVector<DataBuffer> canvas_instance_data_buffers;
		LocalVector<Batch> canvas_instance_batches;
		uint32_t current_buffer = 0;