Initial rewrite of opengl renderer.

Screens are now textured onto quads. OS X joins the party.
When rendering for pica is done using gl, this can be updated to expose a FBO, and then that FBO's texture can be applied to the quads.
I see the intention there, but please use getter methods for this instead, i.e.

    struct {
        ScreenInfo list[2];
        ScreenInfo& Top() { return list[0]; }
        ScreenInfo& Bottom() { return list[1]; }
    } m_screenInfo;

Or alternatively:
    struct : std::array<ScreenInfo,2> {
        ScreenInfo& Top() { return (*this)[0]; }
        ScreenInfo& Bottom() { return (*this)[1]; }
    } m_screen_info;