Rather than have one field per hierarchy change, XI2 has two fields - one
generic one and one per-device that include the device-specific flags.
This requires some funky handling for removed devices, but oh well.
All XI2 requests have XI prefixes.
Requests affected:
ChangeDeviceCursor
QueryDevicePointer
WarpDevicePointer
SetClientPointer
GetClientPointer
XIChangeDeviceHierarchy.