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.
https://linear.app/comm/issue/ENG-3277
https://linear.app/comm/issue/ENG-3148
Related: https://linear.app/comm/issue/ENG-3265
Depends on D7020