Added mechanism to clean up LaunchPlugins and small fixes

This is needed in case a plugin fires off threads or processes.

This PR also makes AppLauncherProcess public for reuse in another part in RoboVM.

This PR also fixes an issue with AppLauncher in forwarding mode. The launcher can now be properly interrupted by a signal or bail out in case the device is locked.

This PR also adds a profile to the compiler distribution pom which allows pulling in commercial extensions.

This PR also adds a new interface called RequiresInputStream, used to mark LaunchPlugins as requiring user input (keyboard). We will likely need more of these interfaces in the future to allow communication from the Eclipse plugin with LaunchPlugins.