core.go: The vdl "any" type is now generated as go *vdl.Value.

Previously we were generating as vdl.AnyRep, which was another
name for interface{}.  There are multiple problems with using
interface{}:

  1) Decoding into an "interface{}" requires that the type has
     been registered with VDL, and uses our type name based
     matching logic.  This is error prone; if we happen to change
     the package path, the type name changes.  And if the type
     isn't registered, we'll end up with a *vdl.Value anyways.
     Now there's no ambiguity; you always get a *vdl.Value, which
     can represent values of all vdl types.

  2) Some Go values aren't valid in VDL.  E.g. Go values that
     contain channels, functions or unsafe pointers are all
     invalid.  Using *vdl.Value at our API boundaries forces the
     callers to make an informed decision.

This is the main portion of a 7-part CL, which removes
vdl.AnyRep, and uses *vdl.Value instead.

MultiPart: 1/7
Change-Id: Ie4f3ab6bce0363f82f53c2315a7435844f6ffe85
19 files changed
tree: 16d25758bffb2df73b04fdf91cab68bf98930aa5
  1. lib/
  2. profiles/
  3. runtimes/
  4. security/
  5. services/
  6. tools/