For historical reasons (compatibility with C library compare functions such as `strcmp`), the comparison functions of `GHash` (`GHashCmpFP)` and `GSet` (`GSetCmpFP`) are expected to return `false` if the items match, not `true`.
This is confusing and unintuitive and in fact has led to bugs in the past, where this was done the wrong way around: https://developer.blender.org/diffusion/B/browse/master/source/blender/blenlib/intern/session_uuid.c$73-78
### What needs to be done
* Code using the compare functions has to be corrected.
* Comments needs to be updated.
* All comparison callbacks have to be updated. (This is the biggest part of the work.)
* Make sure the individual comparison callbacks are not used for other logic. If so, that needs to be updated.