Merges the keybase and Ledger code from go-crypto (which is no more) into the SDK
Adds support for Ledger into gaiacli
Cherry-picks updated error handling from #1158
* in progress
* passes current tests
* added tests and got working
* changelog and docs
* removed prints
* oops
* works!
* issue in test_cli
* number 9 number 9 number 9
* at least it does only the 9 issue now
* hallelujah it works!
* removed print statement
* rebased
* gah
CoinMapper is now called CoinKeeper to differentiate it from
AccountMapper. A Mapper retrieves things from a store. A Keeper exposes
functionality of coins and maintain invariants.
bank.NewHandler takes a CoinKeeper instead of the entire AccountMapper.