Play run hooks 2.1

This adds the following:

A new PlayRunHook which is used instead of playOnStarted playOnStopped keys. This hook can remember state from start->stop because it is an object.
A new hook to alter the interaction mode of run (wait for key, vs. wait for GUI event).
Create hooks so that third party plugins can adapt the classloaders (important if for things like classloader weaving)
deprecates previous hooks.


Review by @jroper or @huntc