security: Define a VDL type for third-party caveat discharges. (1/2).

This is part of a 2 step process to resolve:
https://github.com/veyron/release-issues/issues/634

This commit defines a VDL type for Discharges, with an
API type simliar to Blessings - the wire type is called
WireDischarge, the Go API is called "Discharge" and
methods are provided to translate between the two.

The VDL type is defined as a union to allow future support
for other types of third-party caveats (such as ones based
on a shared secret key instead of a public key).

The two steps in resolving the aformentioned github issue are:
(1) Define a VDL type for Discharges and have all binaries
    be able to handle such a discharge presented to them.
(Rebuild and restart all binaries in the world, including
the browspr plugin)
(2) Remove handling of code using vdl.Any
    (all conveniently grep-able with "grep TODO(ashankar):DISCHARGEVDL")

Change-Id: I8cfa21756939b3d775fed94ce16edcb8b512ce56
5 files changed
tree: 97683e28c1c7986996f4a7525389ce35aaa9bd0d
  1. lib/
  2. profiles/
  3. runtimes/
  4. security/
  5. services/
  6. tools/