Add a third optional parameter to the weight and dimension normalization
functions in order to be able to specify a specific "from unit" instead
of using the site option. This allows arbitrary conversions between
different units of measure; which is particularly useful for extensions
that need to perform arbitrary unit conversions (e.g. shipping extension
that specifies custom box formats).
Also includes updated tests.