Made Num, Fractional, etc. instances for Dimensionless values.

I was about to write:

    product :: (Foldable f, Num a) => f (Dimensionless a) -> Dimensionless a

when I realized that we could re-use the existing `product` function if only there was a `Num` instance for `Dimensionless a`. I don't see any harm that comes from adding such an instance.

It will allow us to reuse existing functions that abstract over the standard numeric class hierarchy with dimensionless values.

I followed the same logic to decide to do it for all the standard numeric classes. (Except `Integral`, because it doesn't really make sense.)

It turns out that this lets us use the ordinary `sin`, `cos`, etc., so I removed those as well.