Fixed some bugs. Now the testsuite runs fine

Finally implemented a way how watch objects get deleted from the
instance's lookup tables when the low level watch has been removed due
to IN_DELETE_SELF. I've used EventIterator::valid() to cleanup those
watches after all events have been obtained. Sure I'm not totally happy
with this but I need the directory name of a watch in order to build
filenames. Would really like the inotify API giving me the full path to
files instead of basename.