Arcs can now be connected to other objects
Create addToPetriNetTab abstract method in PetriNetViewComponent

* PetriNetViewCompoenents should know how to add themselves to
  a petri net tab
* This removes the nasty if instance of checks in PetriNet
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
Selection and dragging is working for basic objects

* This is a hideous commit, apologies
* Changed LinkedList types to List/Collection everywhere, this may break
  a few things, but I'll add functionality back in later
* Modified Handlers to take models not views, this meant commenting out
  alot of view stuff, will add functionality back in later
* PetriNetController now deals with selecting items, SelectionManager makes
  use of this
* On creating an arc PetriNetController just creates the item, it's view
  is created on notifying its observers
* Deletion of an arc/cancellation needs handllling to remove it from petrinet
  view still
Fix up unit tests that fail

* 7 old tests still fail
No longer use mvn:install for local libs, point mvn at src/local-libs 'repo'

* People were not doing the pre-install Python script step so this new method
  removes the need for it
* It does however spit out warnings about a missing pom.xml file for the
  dependencies, however I am not sure how to fix it since local repos' isn't
  the best maven practice
* In future try to host these/find them on maven
Very basic object deletion

* Can delete selected items.
* Deleting a place does not yet delete an arc
Create visitor pattern for PetriNetComponents

* This allows easy deletion (and addition in future) of components
Fix bug in PetriNetContollerTest
Add better unit tests for PetriNetComponentRemovalVisitor
Remove gian map for removal from PetriNet model
Remove models from view on deletion