Change over to a message passing approach for callbacks in glfw-rs.

Addresses glfw-rs issue #23 and a servo crash at shutdown.
Change some of the WindowEvent members to structs to name their fields.
Revert inadvertant change to window.rs
Add polling for window events (i.e., callbacks) to the window example
Remove extra unit from enum constructors.
Remove redundant deregistration of callbacks.
Rename private -> extfn.
Merge pull request #29 from larsbergstrom/message-passing

Message passing conversion
Add Lars Bergstrom to AUTHORS
OCD formatting style fixes :]
Improve implementation of create_shared and turn it into a method

Window::create_shared is now a method on &self. Call it to break off a new shared window.

Internally Window::{create, create_shared} both use a new function Window::create intern that takes an Option<&Window> for the shared context. This means that Window::create does not need to make an empty window for the supplied shared window parameter.
Fix incorrect assignment of Window.shared to true. Rename field to is_shared.
Update directory structure to work with rustpkg
Make Window::create_inner constructor private
Remove stale comment
Simplify extern callbacks
Add note to compilation instructions
Add missing semicolon in README code example
Wrap key modifier bitfield

The key and mouse button callbacks now take a KeyMods struct for the mods parameter. This struct wraps the bitfield, allowing for a nicer way to query what modifiers are currently present.
Add example to KeyMods::contains doc comment
This change removes the need for poll_events on a Window, per issue #31.

It removes the stream-based event handling in favor of a Window-local
map of pointers to registered callback closures. These closures are
owned by the raw C window and are released when the window is destroyed.
Remove extra whitespace.