Load extension strings using gl::GetStringi rather than gl::GetString

gl::GetString(gl::EXTENSIONS) is not supported in forward compatible contexts, and returns a null pointer (segfault ahoy!)
Move glfw platform implementation into separate crate

Separate platform implementations should be in different crates. In the future we will also have `sld2_platform` for example.
Merge pull request #86 from bjz/glfw_platform

Seems fine so far.
Add version information querying and logging
Implement fallback for querying extensions when the gl version is < 3.2
Merge pull request #84 from bjz/capabilities

Load extension strings using gl::GetStringi rather than gl::GetString
Added Glfw window context creation with fallbacks.
Made the default one try OpenGl 3.2 core and 2.1, in that order.
moved info log message
create_window_default -> create_default_window
Simplified glfw_platform reexport
Implemented support for stencil states
Implemented Default for several rasterizer states
Merge pull request #88 from kvark/rast

Stencil state and defaults
Made gfx::glfw::create_window take arrays of window hints, instead of
callbacks
init() is a more fitting name now
Merge pull request #87 from Kimundi/context_version_select

Added Glfw window context creation with fallbacks.
Fix capability detection on core profiles
Merge pull request #90 from bjz/fix-capabilities

Fix capability detection on core profiles
Update submodules