Simplify and improve performance of STAmount::createHumanCurrency

We call `STAmount::createHumanCurrency` to generate the human-readable name of a currency (e.g. "BTC", "USD", "XRP" or a very long hex string) from one of the various different formats.

The code was very inefficient, serializing the currency, only to then effectively deserialize it by copying parts of it into four different `Blob`s (aka `std::vector<unsigned char>`) and then iterating those vectors to check if they only contained zeros.

Leverage the capabilities of `uint160` and `base_uint` and eliminate the need for all the extra work.