Don't go through double in AmountFromValue and ValueFromAmount
Don't go through double in AmountFromValue and ValueFromAmount

My prime gripe with JSON spirit was that monetary values still had to be
converted from and to floating point which can cause deviations (see #3759
and https://bitcoin.stackexchange.com/questions/22716/bitcoind-sendfrom-round-amount-error).

As UniValue stores internal values as strings, this is no longer
necessary. This avoids risky double-to-integer and integer-to-double
conversions completely, and results in more elegant code to boot.

wastholm/bitcoin,wastholm/bitcoin,wastholm/bitcoin,wastholm/bitcoin,wastholm/bitcoin,wastholm/bitcoin