vom: support separate vom type stream

  This change allows separate vom type stream through a type encoder.

  * Tried to use the existing code base as much as possible although
    they are moved around for a better structuring.
  * Tried to keep value encoder/decoder and type encoder/decoder
    independent each other, but it was a little bit difficult in
    decoder side since we support both merged and separate type
    stream :) We may clean up when we don't need to support a
    merged stream any more.

  * This is a part of issues/1221.

MultiPart: 2/2
Change-Id: I98242379a3eedd86b54e9014bda1f3f0827f305b
1 file changed