kdirwatch: expand ref counting system to keep account of public instances
this supplements the previous system where we would set the `d` of Entry instances to nullptr. This notably didn't cover KDirWatch instances that do not have any entries though (such as when ::self() is getting called but never installs any watches). to solve this problem we now do object based refcounting where the public refs and unrefs `this` and we keep a record of currently active references inside the private