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
Redefine WindowDataMap::remove to remove a specified window, cleaning up its callbacks.
Remove setting/getting of the user window pointer, and shared window constructor

There are better, and safer ways to share in Rust. If there is an uproar I can revert this change, however. Let me know what you think.
Merge branch 'master' of git://github.com/bjz/glfw-rs