veyron2/vdl: Refactor go imports logic.

[NOTE: Real changes are under veyron2/vdl/..., everything else is
 mostly just vdl updates]

This CL refactors the logic for go imports in the vdl tool.  It
is a pre-requisite for the upcoming native type support, which is
necessary for the standard "time" package.

All dependency tracking should be performed in the codegen
modules, rather than in the vdl compiler.  The reasoning is
because dependency requirements are different for each codegen
language, and it's hard to come up with general-purpose rules.

In this CL we only implement the new dependency tracking /
imports mechanism for go.  Eventually all codegen languages will
implement their own mechanism, and we'll be able to remove the
common imports logic.

As a side-effect, we get nicer generated code; rather than having
special local package names like "__ipc", we just use the default
in most cases.  If there is a collision, we simply pick a
non-conflicting name.

MultiPart: 1/6
Change-Id: I715bf9170fa2bedd00eccc340feccdb460cd519c
14 files changed
tree: 50637732c9f487a0d2143b0e42a380aa0d5c0bb4
  1. lib/
  2. profiles/
  3. runtimes/
  4. security/
  5. services/
  6. tools/