Save private keys in base58check encoded format

In order to make importing private keys from wally into other wallets easier, I have changed WalletKey.js to save private keys in base58check encoded format. In order to do this, I first had to update PrivateKey.js to support private keys that have a compressed public key (which requires appending a 0x01 to the end of the private key before base58check encoding). PrivateKey.js now supports both compressed and uncompressed public keys, and wally saves in base58check format, with backwards compatibility for old wallets with private keys saved in hex.