Fix Java 7 WatchService implementation of DirectoryWatcher

The same WatchKey can be reused in a WatchService. When that happens, add on to (instead of replace) the file extensions associated with that WatchKey.

This pull request fixes the issue reported by @graemerocher at https://github.com/grails/grails-core/pull/477#issuecomment-42521225