#1 Allow more heterogenous types in numeric operations

Hi,

Here is another attempt to resolve this issue. I’m using a pattern like `CanBuildFrom` to express what the return type of a numeric operation should be. That allows to express type promotion (e.g. `Int` to `Float`) in a clean way.

Unfortunately I’m unable to make things like `1 + unit(1)` working… The `anyToNumericOps` implicit conversion does not seem to be applied automatically.