Added a way to clone objects and to get the size of a BinaryMathTree
Added a levelOrder function to BinaryMathTree, this should be useful to
find nodes near the end of the tree in order to do mutations and
crossovers on those items
Added mutation