Revamped WatchService.

Apparently we have to track multiple watchers of a particular dir. Java doesn't
allow multiple watch registrations for a single directory. Fair enough.