Major GUI refactor to MVC design pattern

Rewrote pretty much the entire GUI. This was needed to
better organize where various method calls were going, and
to limit the views from making reckless calls to the view
controller (and occationally the model *shudder*) The new
structure makes these calls much easier to follow, and should
increase development time from here on out.