Huge change to screen. see description below

SceneManager will now correctly handle all scene events. All calls to
change the scene has to be made through teh SceneManager. SceneManager
is also a singleton. All scene class has a pointer to a SceneManager
instance called scene. to get the screen variable that once existed,
just call scene->getScreen()