Collection of vdl/vom speedups

Various things noticed while profiling.

benchmark                          old ns/op  new ns/op    delta
Vom___Encode_____XNumber               3901       3987    +2.20%
Vom___EncodeMany_XNumber                418        401    -4.07%
Vom___Decode_____XNumber               1315       1227    -6.69%
Vom___DecodeMany_XNumber                514        560    +8.95%
Vom___Encode_____VNumber               3303       3405    +3.09%
Vom___EncodeMany_VNumber                152        153    +0.66%
Vom___Decode_____VNumber                881        818    -7.15%
Vom___DecodeMany_VNumber                288        275    -4.51%
Vom___Encode_____XStringSmall          3891       3999    +2.78%
Vom___EncodeMany_XStringSmall           415        413    -0.48%
Vom___Decode_____XStringSmall          1422       1378    -3.09%
Vom___DecodeMany_XStringSmall           730        736    +0.82%
Vom___Encode_____VStringSmall          3338       3418    +2.40%
Vom___EncodeMany_VStringSmall           169        171    +1.18%
Vom___Decode_____VStringSmall          1038        965    -7.03%
Vom___DecodeMany_VStringSmall           409        415    +1.47%
Vom___Encode_____XStringLarge         60169      61080    +1.51%
Vom___EncodeMany_XStringLarge         24448      24164    -1.16%
Vom___Decode_____XStringLarge         33108      33866    +2.29%
Vom___DecodeMany_XStringLarge         32127      33230    +3.43%
Vom___Encode_____VStringLarge         58807      59897    +1.85%
Vom___EncodeMany_VStringLarge         23058      23298    +1.04%
Vom___Decode_____VStringLarge         31878      32522    +2.02%
Vom___DecodeMany_VStringLarge         31247      31895    +2.07%
Vom___Encode_____VEnum                 4037       3944    -2.30%
Vom___EncodeMany_VEnum                  163        158    -3.07%
Vom___Decode_____VEnum                  908        857    -5.62%
Vom___DecodeMany_VEnum                  331        293   -11.48%
Vom___Encode_____XByteListSmall        4120       4124    +0.10%
Vom___EncodeMany_XByteListSmall         446        435    -2.47%
Vom___Decode_____XByteListSmall        1572       1528    -2.80%
Vom___DecodeMany_XByteListSmall         817        848    +3.79%
Vom___Encode_____VByteListSmall        3474       3538    +1.84%
Vom___EncodeMany_VByteListSmall         162        161    -0.62%
Vom___Decode_____VByteListSmall        1079       1035    -4.08%
Vom___DecodeMany_VByteListSmall         466        468    +0.43%
Vom___Encode_____XByteListLarge       45529      46337    +1.77%
Vom___EncodeMany_XByteListLarge        8072       7958    -1.41%
Vom___Decode_____XByteListLarge       19790      20248    +2.31%
Vom___DecodeMany_XByteListLarge       18952      19392    +2.32%
Vom___Encode_____VByteListLarge       44771      45444    +1.50%
Vom___EncodeMany_VByteListLarge        7830       7806    -0.31%
Vom___Decode_____VByteListLarge       18714      19051    +1.80%
Vom___DecodeMany_VByteListLarge       17908      18517    +3.40%
Vom___Encode_____XByteArray            4441       4454    +0.29%
Vom___EncodeMany_XByteArray             665        676    +1.65%
Vom___Decode_____XByteArray            1577       1493    -5.33%
Vom___DecodeMany_XByteArray             792        804    +1.52%
Vom___Encode_____VByteArray            3544       3610    +1.86%
Vom___EncodeMany_VByteArray             183        184    +0.55%
Vom___Decode_____VByteArray             990        930    -6.06%
Vom___DecodeMany_VByteArray             387        364    -5.94%
Vom___Encode_____XArray                4485       4454    -0.69%
Vom___EncodeMany_XArray                 588        542    -7.82%
Vom___Decode_____XArray                1823       1766    -3.13%
Vom___DecodeMany_XArray                 848        856    +0.94%
Vom___Encode_____VArray                4061       3804    -6.33%
Vom___EncodeMany_VArray                 266        241    -9.40%
Vom___Decode_____VArray                1354       1149   -15.14%
Vom___DecodeMany_VArray                 604        449   -25.66%
Vom___Encode_____XListSmall            4947       4455    -9.95%
Vom___EncodeMany_XListSmall             628        560   -10.83%
Vom___Decode_____XListSmall            2116       2086    -1.42%
Vom___DecodeMany_XListSmall            1145       1180    +3.06%
Vom___Encode_____VListSmall            3722       3714    -0.21%
Vom___EncodeMany_VListSmall             273        249    -8.79%
Vom___Decode_____VListSmall            1301       1231    -5.38%
Vom___DecodeMany_VListSmall             567        547    -3.53%
Vom___Encode_____XListLarge         3331547    3068049    -7.91%
Vom___EncodeMany_XListLarge         3214137    2804197   -12.75%
Vom___Decode_____XListLarge         3359875    3515329    +4.63%
Vom___DecodeMany_XListLarge         3453504    3545059    +2.65%
Vom___Encode_____VListLarge         2279671    1904990   -16.44%
Vom___EncodeMany_VListLarge         2156471    1750163   -18.84%
Vom___Decode_____VListLarge         2444358    2418273    -1.07%
Vom___DecodeMany_VListLarge         2448112    2432532    -0.64%
Vom___Encode_____XListAnySmall        10833      10769    -0.59%
Vom___EncodeMany_XListAnySmall         6188       6038    -2.42%
Vom___Decode_____XListAnySmall         4214       4108    -2.52%
Vom___DecodeMany_XListAnySmall         2920       2851    -2.36%
Vom___Encode_____VListAnySmall         9562       9580    +0.19%
Vom___EncodeMany_VListAnySmall         5057       4961    -1.90%
Vom___Decode_____VListAnySmall         2702       2634    -2.52%
Vom___DecodeMany_VListAnySmall         1638       1585    -3.24%
Vom___Encode_____XListAnyLarge     51987236   49482297    -1.65%
Vom___EncodeMany_XListAnyLarge     43570565   41504534    -1.44%
Vom___Decode_____XListAnyLarge     36871552   36519646    -0.95%
Vom___DecodeMany_XListAnyLarge     35375003   34831743    -1.54%
Vom___Encode_____VListAnyLarge     39485695   41499365    +1.44%
Vom___EncodeMany_VListAnyLarge     33286877   31974197    -0.98%
Vom___Decode_____VListAnyLarge     26046159   25955502    -0.35%
Vom___DecodeMany_VListAnyLarge     24430627   23795364    -2.60%
Vom___Encode_____VSet                  3969       3994    +0.63%
Vom___EncodeMany_VSet                   404        382    -5.45%
Vom___Decode_____VSet                  1957       1906    -2.61%
Vom___DecodeMany_VSet                  1150       1156    +0.52%
Vom___Encode_____XMap                  6729       6529    -2.97%
Vom___EncodeMany_XMap                  2367       2273    -3.97%
Vom___Decode_____XMap                  4124       3972    -3.69%
Vom___DecodeMany_XMap                  3164       3008    -4.93%
Vom___Encode_____VMap                  4357       4310    -1.08%
Vom___EncodeMany_VMap                   494        469    -5.06%
Vom___Decode_____VMap                  2154       2102    -2.41%
Vom___DecodeMany_VMap                  1313       1273    -3.05%
Vom___Encode_____XSmallStruct          7426       7222    -2.75%
Vom___EncodeMany_XSmallStruct          1523       1460    -4.14%
Vom___Decode_____XSmallStruct          3563       2855   -19.87%
Vom___DecodeMany_XSmallStruct          2543       1875   -26.27%
Vom___Encode_____VSmallStruct          5711       5605    -1.86%
Vom___EncodeMany_VSmallStruct           375        363    -3.20%
Vom___Decode_____VSmallStruct          1684       1566    -7.01%
Vom___DecodeMany_VSmallStruct           858        819    -4.55%
Vom___Encode_____XLargeStruct         44137      37482   -15.08%
Vom___EncodeMany_XLargeStruct         25435      20364   -19.94%
Vom___Decode_____XLargeStruct         32175      12420   -61.40%
Vom___DecodeMany_XLargeStruct         30794      11120   -63.89%
Vom___Encode_____VLargeStruct         26782      19212   -28.27%
Vom___EncodeMany_VLargeStruct          8643       3044   -64.78%
Vom___Decode_____VLargeStruct          7066       6524    -7.67%
Vom___DecodeMany_VLargeStruct          5942       5446    -8.35%
Vom___Encode_____XLargeStructZero     34854      32259    -7.45%
Vom___EncodeMany_XLargeStructZero     15873      15574    -1.88%
Vom___Decode_____XLargeStructZero      2114       2116    +0.09%
Vom___DecodeMany_XLargeStructZero       876        905    +3.31%
Vom___Encode_____VLargeStructZero     18273      16392   -10.29%
Vom___EncodeMany_VLargeStructZero       204        201    -1.47%
Vom___Decode_____VLargeStructZero      1416       1338    -5.51%
Vom___DecodeMany_VLargeStructZero       425        409    -3.76%
Vom___Encode_____VSmallUnion           5195       5100    -1.83%
Vom___EncodeMany_VSmallUnion            212        204    -3.77%
Vom___Decode_____VSmallUnion           2445       2282    -6.67%
Vom___DecodeMany_VSmallUnion           1343       1248    -7.07%
Vom___Encode_____Time                  6708       6651    -0.85%
Vom___EncodeMany_Time                  1805       1605   -11.08%
Vom___Decode_____Time                  2681       2694    +0.48%
Vom___DecodeMany_Time                  1741       1784    +2.47%
Vom___Encode_____Blessings            31432      30709    -2.30%
Vom___EncodeMany_Blessings             4879       4563    -6.48%
Vom___Decode_____Blessings            56720      55635    -1.91%
Vom___DecodeMany_Blessings            54465      53603    -1.58%
Vom___Encode_____RPCRequestZero       38299      37653    -1.69%
Vom___EncodeMany_RPCRequestZero         192        194    +1.04%
Vom___Decode_____RPCRequestZero        1886       1782    -5.51%
Vom___DecodeMany_RPCRequestZero         508        468    -7.87%
Vom___Encode_____RPCRequestFull       46407      45841    -1.22%
Vom___EncodeMany_RPCRequestFull        4555       4210    -7.57%
Vom___Decode_____RPCRequestFull       58479      57065    -2.42%
Vom___DecodeMany_RPCRequestFull       55636      54238    -2.51%
Vom___Encode_____RPCResponseZero      39574      38765    -2.04%
Vom___EncodeMany_RPCResponseZero        542        531    -2.03%
Vom___Decode_____RPCResponseZero       1877       1778    -5.27%
Vom___DecodeMany_RPCResponseZero        479        443    -7.52%
Vom___Encode_____RPCResponseFull      89078      89555    +0.54%
Vom___EncodeMany_RPCResponseFull      39855      39891    +0.09%
Vom___Decode_____RPCResponseFull      44105      43638    -1.06%
Vom___DecodeMany_RPCResponseFull      40546      40263    -0.70%

Change-Id: I83bc7e3289e3db8de53c9710e2b95193057e668f
6 files changed