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 the play run classloader and classpath configurable
Make the play reloader classloader configurable

- create the reloadable classloader with a classloader creator function
- partition the full runtime classpath into dependencies and user classes
Allow play run hooks task to be configured