Fix an issue with the packing/unpacking of datatype representations
identified by Takahiro Kawashima. The packed length was reported as a
max bound and not provided on the unpacking side, so the unpacking
buffer could become out of sync with the content stored after the
packed representation.

The fix force the packing operation itself before reporting the length,
so we always report now the real number of bytes in the packed
representation.

cmr:v1.7.3:reviewer=jsquyres