Make the package go-gettable (devel_glfw3.1)

This PR is 100% identical to #83, except I am requesting to merge it into the devel_glfw3.1 branch.

Once GLFW 3.1 is officially released, we can update our local copy of the sources, verify everything works, and then merge into master.

I may not have time to bring my changes back to the GLFW 3.0 code base -- so if someone else wants to work on that please do so.

This PR supersedes #65 and #83 .

Closes #40.
Closes #8.
Closes #56.
Closes #82.