Take Sam Aaron's advice on a few things...see #5

First, the gl thread state in global can be an atom.  Use his defonce
suggestion, and switch to the swap! call for global updates.

I think the reload-shader state needs to be in a ref, though.  Keep
that as a ref and use it in a synchronous fashion.  At least, I'm
trying to use it that way.

Also tried to copy the vertical alignment formatting updates.  I go
back-and-forth on whether I like forcing that.  We'll give it a try...

All in all, I like this refactoring.  Thanks, Sam.