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.
There's also `scala.util.Properties.isJavaAtLeast`.

https://github.com/scala/scala/blob/v2.10.4/src/library/scala/util/Properties.scala#L173