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.

Not using a typedef for this yet because "meh". I did make it more clear where the 3*2 part came from though.

I don't feel to well about having a typedef for a 3x2 matrix. If anything, I'd rather have a full generic matrix interface, which would be quite overkill for this case though. I'll keep it noted for the future though, in case other matrix usages pop up in the code anytime soon.