Rework the way Number is handle in the Units

Now Units use Number and there are two sets of functions to create them with `<T extends Number>` and `<T extends PrimitiveNumber>`

PrimitiveNumber is now an empty interface and PrimitiveInterface has gone.