Crop the source image for arbitrary views
It saves a lot of memory and time to crop the source image during decode. Previously we had bounds for the cube faces, calculated by hand and listed in a table. Here we generalize the method, calculating the source image bounds for a rectangle after rotation by arbitrary yaw/pitch/roll angles.
Move the old cube face values to a unit test and use the new method for cube faces at runtime.
Add GeoGebra files to document the algebra.
Delete FaceDiagramCommand, since the point of it was to illustrate where the cube face bounds came from.
Also:
- Fix the bounds check in InputImage::pixel()
- Loosen the integration test checks since they were failing in debug mode.