Major refactor after today's tutorial (increase cohesion, reduce coupling)

Most of the methods in Main is now moved to RootViewController, and fixed (hopefully) all of the references to point to the right places.

Main is responsible for bridging the gap between the views and logic controllers. It's also responsible for application-wide functionalities, minus layouts.

RootViewController is responsible for managing all its subviews, including the inputField. If the CommandController needs to talk to the InputField or vice versa, do it through Main's getter methods.