Allow ConditionalStorage to use a pre-allocated boost::shared_array

This is a starting place to reduce the amount of memory required to
de-serialize large data inside JobContents.