This addresses some comments from D21612, which contains the following changes:
- Update xray_patch() and xray_unpatch() API documentation to not imply asynchrony.
- Introduce a scope cleanup mechanism to make sure we can roll-back changes to the XRayPatching global atomic.
- Introduce a few more comments for potential extension points for other platforms (for the implementation details of patching and un-patching).
This only works for the main executable, right? Is this a temporary limitation? I imagine you could emit constructors to all DSOs that would add per-DSO sled maps to the global list.