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.
Fyi, you can use raw string literals to make such strings look less ugly, i.e.

    static const char vshader[] =
        R"#version 330core
        layout(location = 0) in vec3 position
        [...]";