Optimize the base58 decoder
Optimize the base58 decoder

The existing version was not using a binary search,
and was potentially allocating memory on each iteration.

BWallet/libbitcoin,Airbitz/libbitcoin,kaostao/libbitcoin,libmetrocoin/libmetrocoin-consensus,libtetcoin/libtetcoin-consensus,Airbitz/libbitcoin,BWallet/libbitcoin,libmetrocoin/libmetrocoin-consensus,libmetrocoin/libmetrocoin-consensus,BWallet/libbitcoin,swansontec/libbitcoin,kaostao/libbitcoin,BWallet/libbitcoin,swansontec/libbitcoin,Airbitz/libbitcoin,GroestlCoin/libgroestlcoin,swansontec/libbitcoin,libtetcoin/libtetcoin-consensus,libtetcoin/libtetcoin-consensus,kaostao/libbitcoin,libmetrocoin/libmetrocoin-consensus,libmetrocoin/libmetrocoin-consensus,libtetcoin/libtetcoin-consensus,GroestlCoin/libgroestlcoin,swansontec/libbitcoin,libtetcoin/libtetcoin-consensus,GroestlCoin/libgroestlcoin,kaostao/libbitcoin,Airbitz/libbitcoin,GroestlCoin/libgroestlcoin