Move toward model-view architecture

This change refactors the existing code so that data is contained in the ```MainWindow``` class and the ```DataView``` and ```DataPlot``` windows are responsible for rendering that data and calling control functions in the ```MainWindow``` class to update the data. This accomplished two goals:

1. It will make it easier to move to a true model-view architecture in the future.
2. It will make it easier to add new views.