Refactored plugins for simpler argument parsing, added support for launch plugin invocation

I refactored the plugin class hierarchy, introducing an abstract base class instead of an interface to provide common functionality like argument parsing. 

I also rewired AppCompiler to invoke LaunchPlugins properly. Note that the API for that may still change as i'm not done creating that launch plugin i'm working on.