Majority of the plugin work implemented. The interface has been further abstracted away from the type of plots that it is showing, which enables the plugin functionality. More of the program state has been moved into the view types so it doesn't have to be managed by the interface. Initial example plugin added.