vkd3d: Check the entire root signature for register conflicts.
Not just each descriptor table individually.
As a side effect, conflict checking is moved earlier in the code, so the error code for conflicts happening between unbounded ranges is now correct.