Ensured WatchService watches directory recursively

* Also fixed MatchError on FreeBSD
Merge pull request #3187 from jroper/watch-service-recursive

Ensured WatchService watches directory recursively