Adding hooks for play run lifecycle

So we can track things inside activator, or other play-plugin additions.

* Deprecate old PlayOn* settings
* Create a new PlayRunHooks trait to listen to lifecycle events
* Add PlayRunHooksTask, that is retreived when play-run is called
Abstract out the 'user interaction' in the run task

* Fix bug with JLine2 upgrade where Ctrl-D isn't recognized
* Add PlayInteraction trait that describes how play blocks for input
* Wire in the default interaction mode as Console/Terminal
The run task should be scoped to "Compile" config to match sbt

Otherwise, we still have shadowed run tasks and oddness.
Make play run hooks, classpaths, and classloaders configurable

This is to allow the Typesafe Console plugin to provide instrumented
class loading.

* The dependency and reloader classloaders are created using
  functions that can be overridden via sbt settings.
* The full runtime classpath is partitioned into external
  dependencies, for the dependency classpath, and user classes,
  for the reloading classpath.
* The shared application loader is removed to have only one
  dependency classpath and classloader that can be configured.
Merge pull request #1456 from pvlugter/sbt-plugin-integration

Improve sbt plugin integration