Currently, we rely on ObjectContextLoader::with_* wrappers to load,
lock, and guarrantee release of obcs. That mechanism works well enough,
but the execution pathway is pretty tough to read as it spans
[Internal]ClientRequest, PG, ObjectContextLoader, ObjectContext, and
tri_mutex. This mechanism cuts out PG and ObjectContext (mostly) and
uses coroutine support for auto variables to make the interface easier
to understand.
This mechanism will also allow a future PR to access the ObjectContext
state prior to loading it. This will be important to using the
ObjectContext memory to host per-object pipeline states.