`Fix lifetime issues with RHI resources and the validation layer
RHI validation ops must be submitted before RHI resources are deleted, since those ops contain RHI resource references. This wasn’t possible given how the RHI deletion queue relied on an EnqueueLambda.
Resource deletion is now part of the submission pipeline. Contexts are finalize and submitted first, then any resources in the delete queue are destroyed. Finally RHIProcessDeleteQueue is called to allow platform RHIs to process GPU memory / resource deletion.
Deletion is also decoupled from flushing. It is now possible to enqueue resource deletion without having to flush the RHI thread.
Nested RHI resources are now deleted immediately when their parent is deleted (i.e. an outer resource holding the only reference to an inner resource). Previously, the inner resource would be placed back on the deletion queue.`