Refactor third-party caveat encoder/decoder to caveatid package.

Remove non-public key third-party caveatid encoding. This can be added
later as an alternative implementation of CaveatId{Encoder,Decoder}.
Updated httpbakery & tests accordingly.
Opinionated and specific bakery refactoring.

Third party caveats will use NaCl box public-key encryption for encoding
caveat ids. Removing interfaces and layers of indirection.
Add NewKeyPair for using an existing KeyPair.
Opinionated and specific bakery refactoring.
bakery: remove Discharger
Merge remote-tracking branch 'origin/cmars-003-caveatid-pkg' into cmars-003-caveatid-pkg

Conflicts:
	bakery/discharge.go
	bakery/keys.go
	bakery/service.go
	httpbakery/discharge.go
Expose bakery.KeyPair members, comment & other review fixes.

Using nil PublicKeyRing map for when no third-party caveats are
supported.
Merge pull request #22 from cmars/cmars-003-caveatid-pkg

Refactor third-party caveat encoder/decoder to caveatid package.