ISPN-4678 Trim down ExpandableMarshalledValueByteStream to the actual da...

Some data to defend this solution:) ....

When using domain class TIN with four fields of types String (id, name, surname, custom text) the memory savings and throughput are following, when storing 500 000 TIN objects in the cache:

Without the fix:
--------------------
GC:
99,353: [Full GC (System) [PSYoungGen: 132397K->75921K(296704K)] [ParOldGen: 890237K->890237K(890240K)] 1022635K->966159K(1186944K) [PSPermGen: 60296K->60295K(70464K)], 0,7199160 secs]
Time to store 500k objects in cache: 10208 ms

With the fix:
----------------
GC: 
98,775: [Full GC (System) [PSYoungGen: 64K->0K(338688K)] [ParOldGen: 615453K->544657K(889536K)] 615517K->544657K(1228224K) [PSPermGen: 60722K->60308K(121344K)], 0,9099400 secs]
Time to store 500k objects in cache: 6783 ms
I see the ```MarshalledValue``` as immutable. So, I would go for the second (return new instance if compacted, itself otherwise).

If someone agrees that it is ok as it is now, I can integrate it :)