rework I/O to use name_string and symbol_string free functions to create string representation of unit.
almost everything works, except a minor problem with scaled quantities