Account for WatchKey reuse

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.
Revert "disable the Java 7 WatchService implementation for now, since it simply doesn't work in testing"

Since the problem with the Java 7 WatchService implementation has been fixed, enable it.

This reverts commit b8c4140d2407dbdcda813a1756a5867cec308154.
Merge pull request #513 from candrews/patch-11

Fix Java 7 WatchService implementation of DirectoryWatcher
use Spring 4.0.6.RELEASE
update to Groovy 2.3.4
Updated Asset-Pipeline plugin
GRAILS-11571 - allow addTo* and removeFrom* methods to work with GrailsTypeChecked and GrailsCompileStatic
Merge branch '2.4.x' of github.com:grails/grails-core into 2.4.x
Merge branch '2.4.x'

Conflicts:
	grails-bootstrap/src/main/groovy/org/codehaus/groovy/grails/resolve/GrailsCoreDependencies.java
	grails-core/src/main/groovy/grails/compiler/GrailsCompileStatic.groovy
	grails-core/src/main/groovy/grails/compiler/GrailsTypeChecked.groovy
	grails-core/src/main/groovy/org/codehaus/groovy/grails/compiler/DirectoryWatcher.java
	grails-core/src/main/groovy/org/codehaus/groovy/grails/compiler/WatchServiceDirectoryWatcher.java
fix compilation error

This is related to the recent update from Groovy 2.3.3 to 2.3.4.  In Groovy 2.3.3 the bind method was declared to return Writable.  In 2.3.4 it now returns Object.

See https://github.com/groovy/groovy-core/commit/9d9d65816fa572a6b4bc13ae6984f640eab20b3e