Initiated incorporation of MVP Design Approach

Right now the view model is acting both as the presenter and the view in
our project. We need to now split the view up into presenter and view
modules by creating generic commands (events) that the view can pass on
to the presenter to handle.