change global to local state per window

first pass at moving from a global state to local state.  More to do.
Revert some local state changes.

Turns out LWJGL just can't do more than one window.  So, the changeover
to passing local state was just for code cleanliness and/or future
potential changes if we switch over to a non-LWJGL base at some point.