New ID format: OT-(base58Check encoded)

We are switching from base62 to this new format, which is used by bitmessage, and (disregarding the OT prefix) in Bitcoin addresses.

Regarding the base58 library being used: Ideally, we would have integrated [libbase58](https://github.com/bitcoin/libbase58) by luke-jr. I did not go through with this because it is buggy (infinite loops, see [issue](https://github.com/luke-jr/libbase58/issues/1)) and untested. It is **not** used in the Bitcoin reference client.

I ended up splitting off the relevant code from the Bitcoin reference client, see [here](https://github.com/benma/libbitcoin-base58). Including bitcoin as a dependency would have been too much, as the base58 code in there depends on other irrelevant Bitcoin-related code and boost.

**Caveat 1:** when we switch the format, all existing "~/.ot" data becomes invalid.

**Caveat 2:** At the moment, OTIdentifier holds a binary 32 byte hash. base58Check encoding is applied to that.
The end goal is to not use 32 byte hashes there, but 20 byte hashes `ripemd160 . sha256`, just like in Bitcoin/bitmessage. @da2ce7 is working on this AFAIK.
** Do not merge this before the switch to `ripemd160 . sha256` is completed **.
`theOutput` is an OTIdentifier (inherits from OTData). I have seen no way to actually set the underlying data other than by accessing GetPointer() and casting away the const, like it was done before.

I chose to leave it this way because @da2ce7 has refactored/removed OTData, and this code will have to be adapted to that anyway.