Add recursive fsnotify watch

* To avoid multiple rebuilds on saving a file, some extra work was
  needed.