[3.x] Allow falling back to GLES2
This allows running the TPS demo on a greater range of devices and platforms, while also allowing its use for GLES2 renderer testing.
Several automatic adjustments are made to ensure it looks as good as possible (within the limitations of GLES2 and the lack of baked lightmaps).
Some particles are currently missing and would need CPUParticles fallbacks to be added to become visible again.
Edit: Bullet bodies/trails are now visible in GLES2 as this PR converts them to CPUParticles. They look identical to before in GLES3. Bullet explosions are still missing, but they use custom particle shaders so a complete rewrite would be required.
To test this locally, start the project with the --video-driver GLES2 command line argument (or add --video-driver GLES2 to the Main Run Args project setting).

Rebased and tested again, it works as expected on Godot 3.5.
I converted the bullet's main body and trail particles to CPUParticles so that bullets are visible in GLES2 too.
I made a branch with GLES2 + lightmaps if anyone is interested: https://github.com/Calinou/tps-demo/tree/allow-gles2-fallback-lightmaps