Improve camera simulation

- Support 4 different projection modes: Parallel, planar, spherical, and cylindrical.
- Additional projection modes can be added by adding cases to an enum and a switch.
- Each projection mode has its own minimum and maximum *recommended* field of view settings, but this only affects the slider; smaller or larger values can be input if the user *really* wants to make e.g. a 720 degree panorama. 
- Depth of field can be applied to any other projection mode (including the parallel one).