Remove virtual inheritance from RendererOpenGL

Also make destructor virtual so that instances are properly destructed.
OpenGL renderer: Shuffle initialization code around and rename functions.
Rename GPU::Regs::FramebufferFormat to PixelFormat

This name better represents what the enum does, and is less overloaded
in the context. (The whole register the enum is part of is also called
'format'.)
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.
 - Vertex coordinates are now given in pixels, and the projection matrix
   isn't hardcoded anymore.
OpenGL renderer: Request a forward compatible context in citra-qt

This should fix context creation on OS X. Also requests a core context on all platforms in Citra-GLFW, for consistency.
Merge pull request #113 from neobrain/opengl_refactor

OpenGL Refactor
Use config files to store whether SDMC is enabled or not

Before, it used to use whether the directory actually existed. As a result, .citra-emu/sdmc was never auto-created (something quite confusing to me until I read through the logs).
Common: Return from CreateFullPath early if the directory creation fails