Added a GUI object to State class.  Clients can access this gui by calling a getter on their derived State class.
Refactored to internalize GUI.

State objects now have a GUI.
Objects are "built" in their constructor.
Internalized registering gui with input service by making the RegisterUserInterface method private, and declaring InputService a friend of StateManagerService.  Now when states are pushed and popped their gui is automatically registered.
Fixes #108