bundle2: support for bundling and unbundling payload

We add the ability to bundle and unbundle a payload in parts. The payload is the
actual binary data of the part. It is used to convey all the applicative data.
For now we stick to very simple implementation with all the data fit in single
chunk. This open the door to some bundle2 testing usage. This will be improved before
bundle2 get used for real. We need to be able to stream the payload in multiple
part to exchange any changegroup efficiently. This simple version will do for
now.

Bundling and unbundling are done in the same changeset because the test for
parts is less modular. However, the result is not too complex.

--HG--
extra : rebase_source : a5efd8017fa8662739e24b5f0089e87b853bfb81
bundle2: part params

--HG--
extra : rebase_source : 315fe25ae62ea69b6d43e84ca557fe0e119f4226