added BaseUnit and DerivedUnit, and support for prefixed base units

Why would anybody have a prefixed base unit? Horrible idea, but we're
stuck with it.