Fiat, Monetary and ExchangeRate

Introduce Fiat as a holder for fiat values. Coin and Fiat share an interface Monetary so that monetary infrastructure can be re-used.

Adapt CoinFormat to be used with Monetary. Add an ExchangeRate value class that can convert from Coin to Fiat and back.
Overflows too easily? You mean because long isn't large enough? That's surprising. 63 bits is very large. What kind of calculations are you doing that overflow?