OpenGL Refactor

Supersedes #83.

>Rework OpenGL renderer.
>
>The OpenGL renderer has been revised, with the following changes:
> - Initialization and rendering have been refactored to reduce the number of
>   redundant objects used.
> - Framebuffer rotation is now done directly, using texture mapping.
> - Attempt to support the LCD framebuffer size registers, under the
>   assumption that the 3DS hardware does hardware scaling in case they
>   don't match the physical LCD resolution.
> - Vertex coordinates are now given in pixels, and the projection matrix
>   isn't hardcoded anymore.

Fixed up outstanding code review comments and changed RenderXFB to take non-const references.

I also think that, given that this is a 4 line function, that the variable name being non-descriptive doesn't matter at all. If this needs to be made clearer, the comment should instead state that it returns a 3x2 matrix.