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
Sanne, what do you mean by "pointless copy" ? I agree that in different cases the difference can be smaller. But why  to have any wasted space when we can have "no wasted" space?:)  I found that when I restart ISPN and data is preloaded from DB through a JDBC cache store, the Expandable Byte Stream is not used at all. The Immutable one is used instead. So I unified this for both cases (before restart, and after restart+preload).