Implement very basic BNF and tree walker for #30

* Walker prints out component names for token numbers
Implement EvalVisitor which parses the tree into a double for #30

* Parses simple atihmetic expressions
* Optionally takes a petri net to parse place dependent tokens
* Returns zero for the place dependent token if it does not exist in the
  petri net
* Coloured tokens in places need adding into the grammar, for now
    returns total number of tokens
* Unit test EvalVisitor
Functional rates with the ability to select an entire place's tokens
or a particular token
Very basic functional weights working on arcs

* No error checking for floats etc yet
Modify FunctionalWeightParser to take an expression in the evaluate
method
Fix typo in "addAnnotaiton" method
Add test for functional rates to PetiNetTest

* Fix PetriNet up so that it only increments/decrements places
  after calculating incidence matricies
Comment up PetriNet
FunctionalRate Error messages appear when editing arcs

* Add unit tests
Implement ceil and floor capabilities
Do not allow negative numbers in expressions
Add functional results missing class
Remove commented out code form ArcWeightEditorPanel