1. Moved window selection logic into StateMachine
2. Made StateMachine a nested private class of WorkspaceView class
3. StateMachine now can access private members of WorkspaceView (being a nested class)