PipeApplicationController responsible for creating new tabs
  && Move MouseHandler to seperate file

* Move MouseHandler to a new file
* Start writing tests
* Started to make PipeApplicationController be responsible for creation
Create new transition tests for MouseHandler
Create Arc add point tests
PetriNetTab deletes objects on update if its already showing them

* PetriNetView updates PetriNetTab every time theres a change, entire thing
  is re-drawn. This is not the best logic yet but it's at least using the model

* Refactored matchers into seperate package to re-use them
Removed old create methods in PetriNetView
Set PetriNetView Model when loading PNML
PetriNetView re-uses place views on update

* No longer creates a new place view
* PetriNetController cna create unique place number
Re-use transition view when petrinet updates

* Set all lists of petrinetviewcomponents to be maps of their
  model to the view. This means return type had to change in getters
  Have BROKEN matrix, and firing implementations temporarily
* Update displayTransitions method
* Create unique numberings for transitions in PetriNetController
Arc model knows arc start and finish

* That is it knows the starting and end points for the view
  trigonometry has been moved into arc
* Created TemporaryArcTarget to act as an intermediary whilst positioning
  arc on the view
* Added unit tests