Add the thread0 package.

This package contains the code for scheduling functions to execute on
teh main go routine. It both reads more clearly than ui.Do (i.e.,
thread0.Do makes it obvious that the thing being done is by the 0th
thread, not somehow by the ui.) and removes a dependency on the rest
of the ui code for things that simply want to execute on the 0th
thread.
Make each event type its own type.

I don't like having a ton of extra types, but it's senseless to think
that the user will want to switch on the event type and then
subsequently switch on event subtypes.
Move the SDL_Keycode→ui.Key mapping to a separate function.
Make gl.Error more goish.
Make gl.Clear more closely match the glClear funciton in C.
Remove the, now unused, gl.Init function.
Move deprecated OpenGL functions to deprecated.go.
Fix the gl package comment.
Add shaders and buffer objects.  Deleted deprecated calls.
Remove error checking.

Steve suggests that I just give up on it.