Update TODO
Add ability to evaluate sub tree
Add a rule to check function node sizes in crossover
Add ability to use multiple mutation methods concurrently
Remove score for TreeNode for the moment

Still not quite sure how the caching of Trees should work, so at the
moment the score attribute in TreeNode class is removed
Fix a typo in the test
Minor edits