IntermediateStore operates at three layers of abstraction:
- Its _object methods deal with serialization strategies
- Its _value methods deal with type storage plugins and fall back to the _object methods
- Its _intermediate methods wrap its _value methods but accept step_keys instead of paths
On top of this, IntermediatesManager has methods that do the same thing as IntermediateStore's
_intermediate methods, without delegating to them.