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 than can be configured.