More convenient methods added to MathBinaryOperation and exception handling.

Assigning children to binary operation is too awkward, because you need to specify the index number explicitly every time you use a getter/setter method. In our previous structure, MathException covered all our own exceptions. In this commitment, MathException is also included.
Hover state of MathObject has been implemented and some files also have been formatted to confirm to our so called code guidelines.