Implemented a custom ToString formatter for units 

- Values below 1e-4 are always displayed in scientific notation.
- Values between 1e-4 and 1 are in fixed point notation.
- Values between 1 and 1e5 are in fixed point notation.
- Values above 1e5 are in scientific notation.
- Consumers can choose the number of digits to display after the radix point.
- Fixes #38