Added Glfw window context creation with fallbacks.

Made the default one try OpenGl 3.2 core and 2.1, in that order.
Instead of using closures, what about vectors of `glfw::WindowHint`s?