Suppress error generation in create*PipelineAsync, clarify async steps by kainino0x · Pull Request #4752 · gpuweb/gpuweb

@kainino0x

Captures errors from when `create*PipelineAsync` call into
`create*Pipeline`.

Also improves the definitions of all device-timeline-async operations:
- GPUDevice.createComputePipelineAsync()
- GPUDevice.createRenderPipelineAsync()
- GPUShaderModule.getCompilationInfo()
- GPUQueue.onSubmittedWorkDone()
- GPUBuffer.mapAsync()

(GPUDevice.popErrorScope() returns a promise, but its device-timeline
steps are synchronous.)

Improves some language in "Errors & Debugging" and around the
device-timeline "device becomes lost" event hooking.

Fixes 4714
Fixes 4742