d3d12: Surfaces need to use shareable descriptors
Reported by running MobileEmulatorMaster (http://g.monidashi.cn/), the app apparently creates a renderbuffer, shares it, and deletes the original context. When trying to clean up that renderbuffer, it references the descriptor heap to try to return the descriptor, but the heap's already been deleted during context cleanup.
We likely need to move the render target descriptor pool from the context to the screen with locking, or we need to add one to use for non-temporary/shareable surfaces.
I suggest not downloading the repro app, and we should instead make sure we have a dedicated test for this.