Forbid zero multipliers in prefixed units

Zero multipliers in prefixed units seem to be senseless.
Mainly units conversion update

- UnitConverter delegate was renamed to UnitConversion;
- Moved UnitConversion and UnitCollection classes (and respective tests)
from opt.Domain to opt.Core;
- Added IUnitConverter<TValue> interface to opt.Domain. Unit converters
for value type TValue are expected to implement this interface;
- Added IUnitConversionProvider<TValue> interface to opt.Domain.
Providers of unit conversions are expected to implement this interface;
- Added PrefixedUnitConversionProviderBase<TValue> class to opt.Core -
it is a base class for typed prefixed unit conversions providers;
- Added DoublePrefixedUnitConversionProvider class to opt.Core -
prefixed unit conversions provider for double values;
- Added UnitConversionDictionary<TValue> class to opt.Core - to act as a
storage and a provider of conversions;
- Added AggregateUnitConverter<TValue> class to opt.Core.
Added Units sample app