AsyncLocalStorage management for the Contrast Node.js agent. It provides two
stores on core.scopes:
core.scopes.sources holds the per-request store, so concurrent requests stay
isolated.
core.scopes.instrumentation controls whether agent instrumentation runs.
Code run with instrumentation.run({ lock: true, name }, fn) is locked, and
instrumentation hooks check instrumentation.isLocked() and do nothing while
it is. @contrast/deadzones uses this to skip libraries the agent shouldn't
track.
core.scopes.wrap(fn) returns a callback that runs in whichever of these stores
were active when it was wrapped.