Screen architectural cleanups

This is the first chunk of my current cleanups. The big change here is the refactoring of ScreenManager into a Scene class and a ScreenRenderer class, as well as a great deal of decoupling between the Screens and the ScreenRenderer. There's also a host of code style changes, mostly regarding auto-properties and code folding regions.

Looking forward, I want to frame the screen rendering subsystem as drawing a Scene composed of multiple Layers. Currently, the GameScreen and MenuScreen classes have a few too many responsibilities each, and I want to reduce the amount of inheritance-based coupling.