Evaluation and toString working nearly as expected. Small problem with
signs but only in complicated expressions.
Removed execute() in add() as I cannot get the child execute to run this
way. Only runs the abstracted method
Added a boolean to show if a value/FormulaElement has been changed by
MinusFunctionElement plus a small implementation in element()
Added boolean to check if sign flipped. Moved first pass to prevent
variables breaking up.
Updates in Variable adding / ordering
Updates in Variable multiplying / ordering
Now creates powers correctly from repeat variables
Removed unnecessary brackets in output, changed precedence with
MultipleFunctionElement
Added new test cases. Failing cases marked