Have another dip.

I've decided this was maybe not such a bad idea after all so we're
giving it another spin.

* Replace gl3w with glloadgen since the latter sucks less.
* Ditch the typedef'd structs and weird half-baked error handling.
* Unify function sigs so we can pretend that this is a nice library.
* Simplify the global data - not thread-safe - must be initialised before
  thread kickoff.
* Throw away the button translation rubbish. Totally unnecessary complexity
  that just throws away cycles.
* Hack up the makefile so it can build the example.
* Add initial event handling code.