Base58 isolation and preparation for Buffers

In preparing the code base to use `Buffer`s, I have isolated the `Base58Check` module (reference: https://en.bitcoin.it/wiki/Base58Check_encoding) from the typical Base58 code itself.

This provides a simpler and more coherent API for dealing with Base58, and removes the ambiguity that existed in the names `checkDecode` and `checkEncode`, which (IMHO), sounded more like functions of a reductive nature, rather than transforming.

Points of interest are mostly in the transitional `FIXME`s that are scattered between `script.js`, `jsbn`, `convert.js` and `hdwallet.js`; mostly in that those functions currently use arrays in a way that does not yet bode well with `Buffer`s.
I hope to remove this ASAP with transitions to other API's to be more buffer oriented also.