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.
Initializing a struct like `.member = value` isn't valid in C++ (only in C99).