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.

Agreeing with @yuriks, however I'll add a note that this is a 3x2 matrix. This should make the odd layout sufficiently clear.