Keys: Modified interface of Pubkey and Privkey so that an instance can be relied upon as valid.

- Updates Pubkey and Privkey interface so that an instance can be relied upon as valid
- Renames Pubkey to PublicKey and Privkey to PrivateKey
- Adds jsdoc for each function
- Adds tests coverage around each
- Adds additional prototype methods such as `toAddress`