The DataObject is some weird / rarely used different code than the normal TLV encoder/decoder. It has apparently so far only been used for decoding, without testing the encoding side, resulting in related bugs. Let's fix those that I encountered today, and add a test case. Change-Id: I31370066f43c22fc3ce9e2b9ee75986a652f6fc4