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 don't mind moving it but could we comment further whether the current changes plus the proposed changes would be final? 
There are a few options for having compact() method on the MarshalledValue:
* either it will compact itself and return itself or
* it will create a new instance of itself with compacted payload so that the original instance will remain the same
I'm just asking in advance so that I can do final changes to this PR.
Any other opinions, anyone?