Added Glfw window context creation with fallbacks.

Made the default one try OpenGl 3.2 core and 2.1, in that order.
~~~rust
create_window(glfw, width, height, title, mode, vec![
    glfw::ContextVersion(3, 2),
    glfw::OpenglForwardCompat(true),
    glfw::OpenglProfile(glfw::OpenGlCoreProfile),
]).fallback(vec![
    glfw::ContextVersion(2, 1)
]).init().map(...)
~~~