Added LaunchPlugins

to support listening and modifying app launching. Introduced a generic Plugin interface implemented by both CompilerPlugin and LaunchPlugin. Rewired Config, ConfigBuilder and AppCompiler accordingly.

Current launchers do not call into the launch plugins yet, that's for another PR.