core: Introduce explicit weight to InputEventFilter
This is problematic as it means anything requiring a fixed position in the chain cannot be added or removed at runtime. This is bad for both performance and code cleanliness as all code ends up input.cpp rather than where it semantically belongs.
Remaining users that prepend event filters have the problem of the order being effectively undefined.
This patch adds a weight attribute to the filter allowing filters to be installed and removed at runtime whilst maintaining a specific deterministic order.
Currently the order is defined by an enum based on the filter names. This gives an easy to read explicit order for anyone reading kwin code, but it is left cast to an int so we have future flexibility.