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
Changed Play Intro / Feature Tour Templates

Signed-off-by: Markus Jura <markus.jura@gmail.com>
Build improvements - less repetition
Added injector abstraction, and added source reporting in binding errors
Added documentation about the SBT assembly plugin
Fixed scaladoc for WebSocket.tryAcceptWithActor
Removed usage of festassert from play-java-intro template
Add support injection in FakeApplication
Merge pull request #3172 from jaceklaskowski/sbt-build-improvements

Build improvements - less repetition
Merge pull request #3181 from jroper/sbt-assembly-docs

Added documentation about the SBT assembly plugin
Ported messages plugin to be a module

In addition, filled out the Java API to provide more than just static
methods.
Ported WS plugin to module

Also added Java versions of a number of the interfaces.
Merge remote-tracking branch 'origin/master' into inject