This exposes our usage of opaque 2.0 in a way that
many of the details are obscured from the calling code.
This should eventually allow for significant reduction
in code re-usage in current code base, as well as
open the door for exporting the facade as a wasm api.
Depends on D7020