Use BatchContext switching for all DistributableSession methods.
DistributableImmutableSession needs to be a true snapshot of the session.
Extend ISPN-4196 workaround to include Cache.size().