ac,radeonsi: implement mid-command buffer preemption for virtualization
The user mode driver only has to mirror registers in memory (using register shadowing), so that the GPU can switch to a different process at any place in command buffers. The hardware and the kernel driver do the remaining magic. The kernel option
amdgpu.mcbp=1 enables it for testing. SR-IOV always enables it.
gfx9, gfx10, and gfx10.3 are supported. It's in a pretty good shape.
The first half is mostly just cleanups and a few important bug fixes right at the beginning.