Split off base58 into a new library

Hi

In our work in Monetas, we needed base58(Check) encoding and decoding functionality in Go. Some of my colleagues collaborate on conformals bitcoin implementation and told me I could find it here. 
Since we need only the base58 functions, but not the rest of the bitcoin related stuff in btcutil, we figured it would be a good idea to split off the base58 code into a new library.

For the moment, it can be found [here](https://github.com/monetas/base58), but we would very much like you to take it and move it to conformal/base58, since it is your code and still belongs there. 
The initial [base58 commit](https://github.com/monetas/base58/commits/master) is a 1:1 copy of the base58 files and the LICENSE, and the second commit encapsulates base58Check encoding.

This PR contains a patch to btcutil to remove the duplicated bas58 code and use that library instead. 

Once you have moved monetas/base58 to ~~btcutil/base58 (typo)~~ conformal/base58, I can update the patch with the new import paths.

Thank you very much.
Not that it really matters all that much, but I'd prefer a nested if here since an error is the uncommon case, and nesting the check avoids it in the common case. Example:

```Go
if err != nil {
	if err == base58.ErrorChecksum {
		return nil, ErrChecksumMismatch
	}
	return nil, ErrUnknownAddressType
}
```