Generate external window callbacks using a macro
Make get_video_mode return an option and move primary monitor getter and connected monitors getters into Monitor impl
Use uints in Version struct
Take advantage of new Ptr::to_option method. Make Window::create return an Option

The ~str error message wasn't really providing any useful information, so this simplifies things.
Fix video mode transmute
Move set_monitor_callback into Monitor, and rename it to  set_callback
Use a macro to generate key callbacks

This is actually uses more lines than the previous method, but the old way felt brittle and error prone to write.
Implement ToStr for Version
Fix implementation of get_context_revision
Remove separate context version getters in favour of a single combined method
Lots more documentation added, adapted as before from glfw3.h
Updates to private module comments