Add type PrivateKey, (*PrivateKey).Sign() and (*PublicKey).Verify().
Add tests for sign and verify.
Cleanup new code introduced by Pull Request #4.

- Keep comments to 80 cols for consistency with the rest of the code base
- Made verify a method off of Signature instead of PublicKey since one
  verifies a signature with a public key as opposed to the other way
  around
- Return new signature from Sign function directly rather than creating a
  local temporary variable
- Modify a couple of comments as recommended by @owainga
- Update sample usage in doc.go for both signing messages and verifying
  signatures

ok @owainga