Add in the ability to launch non xsbti.AppMain classes.

* Deprecate old mainClass method on appProvider
* Create entryPoint method which represnets class used to launch instead.
* Create PlainApplication to wrap static `main` methods.  Can return
  either Int, Exit or Unit.
* Detect supported 'plain' classes via reflection.
* Add new unit tests appropriate to the feature.


Relatively self-contained.  Probably needs more supported 'raw' interfaces (like passing classpath), but clean enough we can just include in future sbt.

Review by @harrah, cc> @adriaanm @havocp