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.