Use a more comprehensive set of derivings for most things
Fix FFI module

Allow for bad style, and set C representation hint
Remove use of deprecated to_option
Fix warning in example
Merge pull request #220 from cmr/derive-show

Various small fixes
Make get_proc_address less error-prone

This solves the (fairly common) error of forgetting to make a context current
before trying to load GL function pointers. It accomplishes this by using
moving get_proc_address to Window and using glfwGetCurrentContext to check if
that Window is current before actually loading the function. It adds a
Glfw::get_proc_address_raw that is as today but with a debug assertion that
there is a currently bound context.

The method on Window should be used, generally, though it will incur a slight
performance penalty (adds a branch, and glfwGetCurrentContext will do a TLS
fetch).
Merge pull request #221 from cmr/derive-show

Make get_proc_address less error-prone