Add testing framework
Spilt multiplication and division, give div higher priority

This is necessary in cases like '3/5*4', where with equal priority, the
division is handled first, resulting in 3/(5*4), which is not desired
Simplify simplify() (heh) with Operator interface

Interface provides operation internals to a general handle_operator
method.