WIP turning UnitsContainer into an immutable type.

This is not ready for merge, I just open it so that you can follow my work. 

Most changes to Quantity simply concern the use of _units vs units as I plan to make units return magnitude one Quantity but I need to use internally the UnitsContainer.

Currently I have some weird bugs with Quantities and UnitsConatiners where some attributes are not found (for examples dimensionless exists in the class Quantity but not in the instance returned by the registry)