v2: Use the Xlib functions to set/get WM_HINTS / WM_NORMAL_HINTS and track their property changes. The issues I was seeing was caused by direct property changes where these are not actually matching their structures, but rather fixed up as needed by Xlib... The properties data doesn't have the same layout on 32bit vs 64bit clients for instance.
Tracking the property changes isn't strictly required, but it might help debugging if something goes wrong. Also, this should also probably fix the tests.