Broke out PlayWatchService and AssetsClassLoader to be shared

These files can be used in multiple contexts.  In particular, they will
be needed by the forth-coming forked-run support needed by Activator
based on sbt-server.

[Updated] Added play.sbtplugin.run.PlayWatchService back with deprecation warnings

* Also, improved stand-alone sbt scripted test setup
So to make sure I understand this, what we've got here is one source project getting compiled to two different target directories so that it can be compiled against two different, or potentially the same Scala versions?  I wonder if this could have any problems, for example, if the scala version is the same between SBT and Play, then the same artifact is going to be available from two different locations - could this cause any problems?  What about when the project is published?