Add save/load keys, add secret key hash, fix secret key encode

I added save and load functions and gave the user the ability to generate and immediately save a key in the cli. 
Although load isn't used anywhere yet, it is ready to go.
Secret Keys were encoded such that they encoded/decoded the public key stored inside of them. This fixes that.
I also added secret key's Hash funciton by copypasting PublicKey's hash.
so, this isn't going to be necessary after the libsodium pull request. siacrypto.PublicKeySize and siacrypto.SecretKeySize will be a thing, and the keys will always have the same number of bytes.

So wait until the libsodium stuff is merged and then change this stuff, and then commit it and comment on the PR, and I'll merge it after that