Arithmetic functions should work with mixed Types

(User Story, Closed -> Fixed, Priority: High, Test Status: Unit tested , Reported By Justin du Coeur, )
Summary: Currently, the _plus, _minus, _times and _divideBy functions only work if the parameters are the same Type. They really should work with any combination of numeric Types.
I started to implement this, and then dropped it for now because the code was coming out horrifyingly ugly. The problem is that the current Typeclass-based approach completely falls apart in this case. Need to pause and think about it more carefully.
I believe that, in principle, you want to widen the types to match -- Int becomes Long, either becomes Float -- and then do the computation.
In any case, the output of _divideBy should always be Float.