Breaking out functionality of window and state machine

Self note: I think I need a camera class that both the window and
statemachine knows about.  Window needs to inform it if the viewport has
changed, which the camera will change for it's projection/ortho
settings.  Then the matrix can be updated.