Add support for JDK7 watch service

* Automatically uses JDK7 watch service if available and not OSX
  (because on OSX it does polling)
* Otherwise attempts to use JNotify if Windows, OSX or Linux
* Falls back to SBT watch service if all others fail
* Can be configured by end user
* Made the dev-mode tests test all 3 watch services (if available)
* Made the dev-mode tests a little more robust and faster by spinning
  for up to 10 seconds to wait for conditions to be true.
Merge pull request #3173 from jroper/jdk7-watch-service

Add support for JDK7 watch service