Make PlotEvent public

- Changed PlotEvent to public so listeners can listen to it.
- Moved common functions from the events to PlotEvent
- Updated some of the pom references version