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.
It all depends on precision of course. If I currently multiply 100 Euro (1E10 smallest units) by 1 Coin (1E8 satoshis) it already overflows. The division comes afterwards because the other way round I'd lose precision.

If we define Fiat smallest units to be 1E4, that takes a bit of burden but stilll then it would fail at 1.000.000 Euro.

I don't know if there are algorithms to compute a * b / c without overflowing and with keeping as much precision as possible *for all possible a, b and c values*? I could not find such a method in Guava, so I decided to just use BigInteger.