Flip to new vdl/vom coder implementation.

The purpose of this is two-fold:

1) Simplify the implementation of vdl/vom, so it's simpler to
implement in different langauges, and also easier to ensure
correctness.  The new vdl.{En,De}coder interfaces are the basis
of this, and replace the old vdl.Target interface.

2) Improve the performance of vom.  By simplifying the
implementation we've made it easier to speed things up.

Note that the new implementation already exists in the codebase.
This CL just makes a minimal change to flip everything over.
Thus it's easy to revert if we have to.  We will remove the old
implementation after we're confident we don't need to revert.

The new vom implementation only supports version 81.  The old
version 80 has been dropped.  Note that the default has been vom
version 81 since Feb 2016.

My initial prototypes yielded even better results, but we had to
sacrifice some of these gains in the short-term in order to get
everything working (i.e. code-generation, reflection support,
vom.RawBytes, vdl.Value, vdl.Convert, etc) while keeping the old
vdl.Target based implementation working.  We'll re-introduce
those speedups after we've removed the old implementation.

Here are some numbers.  Everything gets faster, except:
* Encoding vom.RawBytes gets much slower, because of an annoying
  subtlety regarding optional types.  We will fix this later.
* The rpc mux benchmarks get slightly slower.  I don't know why.

VOM micro-benchmarks
                        old ns/op  new ns/op    delta
VomEncodeRequest             2925       1866  -36.21%
VomEncodeResponse            1820        833  -54.23%
VomEncodeCustomer           40330      36031  -10.66%
VomEncoder1Customer         40309      36014  -10.66%
VomEncoder1000Customer    3142349    2046473  -34.87%
VomEncoder1000RawBytes     294401     403669  +37.12%

VomDecodeRequest             4552       2628  -42.27%
VomDecodeResponse            2027        795  -60.78%
VomDecodeCustomer            5805       5107  -12.02%
VomDecoder1Customer        192649     172753  -10.33%
VomDecoder1000Customer    4558302    2992711  -34.35%
VomDecoder1000RawBytes     972727     517747  -46.77%

RPC benchmarks
                                 old ns/op    new ns/op    delta
____1B                              296491       284414   -4.07%
___1KB                              325928       297664   -8.67%
_100KB                             1326710      1258173   -5.17%
____1B_ClientExpiryCav              317818       306347   -3.61%
___1KB_ClientExpiryCav              321261       302726   -5.77%
_100KB_ClientExpiryCav             1256931      1201326   -4.42%
____1B_ServerExpiryCav              342073       307126  -10.22%
___1KB_ServerExpiryCav              365351       318310  -12.88%
_100KB_ServerExpiryCav             1343229      1209946   -9.92%
____1_chunk_____1B                  342637       321144   -6.27%
____1_chunk____1KB                  349254       324237   -7.16%
____1_chunk__100KB                 1224160      1163401   -4.96%
___10_chunk_____1B                  729852       617652  -15.37%
___10_chunk____1KB                  807691       696424  -13.78%
___10_chunk__100KB                 5225549      4750544   -9.09%
__100_chunk_____1B                 4273110      3333279  -21.99%
__100_chunk____1KB                 4829135      4010860  -16.94%
__100_chunk__100KB                43560028     40342297   -7.39%
___1K_chunk_____1B                39160789     29966919  -23.48%
___1K_chunk____1KB                44271650     37794217  -14.63%
___1K_chunk__100KB               431233078    394271852   -8.57%
__per_chunk____1B                    38471        29939  -22.18%
__per_chunk___1KB                    43828        36413  -16.92%
__per_chunk_100KB                   422104       374219  -11.34%
___10B_mux__100_chunks___1KB        452887       467271   +3.18%
___10B_mux__100_chunks__10KB        490306       493584   +0.67%
___10B_mux___1K_chunks___1KB        452046       476033   +5.31%
___10B_mux___1K_chunks__10KB        494417       507299   +2.61%
___1KB_mux__100_chunks___1KB        475109       493633   +3.90%
___1KB_mux__100_chunks__10KB        510881       506461   -0.87%
___1KB_mux___1K_chunks___1KB        499237       497410   -0.37%
___1KB_mux___1K_chunks__10KB        518693       519869   +0.23%
ConnectionEstablishment            4999990      4514393   -9.71%
ProxiedConnectionEstablishment    10075409      9126877   -9.41%
PrivateConnectionEstablishment1   43243555     41965076   -2.96%
PrivateConnectionEstablishment3   44434825     41787868   -5.96%

Change-Id: I000867a3a0cfa81003c9af9ec5e54c1c07bd105d
19 files changed