Allows a class type to be broken down for caching or export and then later
rebuilt into an equivalent object in memory.
This follow the typical pattern which is used in EntityBroker for providers
but is currently generally independent from that system.
Breakdownable classes are classes that are not by themselves serializable,
but they can be converted into a Serializable format using the makeBreakdown.
In addition, the class can be reconstituted using the doRebuild
Return the simplest amount of data needed to rebuild the implementing object later.
e.g. For a Site this might only be the id since trying to store the whole site is dangerous (would get out of date)
and too large and non-serializable, the id would be enough to rebuild it later via a lookup
sizeHint - a hint about the size to make the returned serialized data
serialized version of the data needed to rebuild this object later