Implemented better handling of Quantities with mutable magnitudes

Only if the magnitude is a `numpy.ndarray`, the in place math
operations take place. In any other case, another object Quantity
object is created and returned.

See #104