OpenGL Refactor

Decided to go ahead and open this. It contains a duplicate of the commit in #82 but I can remove it or keep depending on the reactions to it before readying this for a merge.

This started as a simply clean up of a few things in the new OpenGL renderer, but before I realized it I had re-structured almost the whole thing. `;_;`

>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.