Wallet api
The wallet api is now complete.
I am worried a bit about inconsistency, some crypto.Hash alias are encoded into json as hex, and others are encoded into json as byte arrays, and addresses are encoded as byte arrays with checksums.
I think the line count on this PR is scarier than the actual PR.