Added support for compiler plugin argument parsing

The following changes were made:

* Plugins now return CompilerPluginArguments that describe additional arguments AppCompiler should be able to parse
* The plugins are now loaded in the Config constructor which in turn is called by the Config.Builder constructor. Both now throw an IOException in case a plugin couldn't be loaded. I had to move plugin loading there so it works outside of AppCompiler and so that we can access the arguments declared by the plugins before we parse command line arguments.
* printUsageAndExit now takes a list of plugins so it can also print their arguments in addition to the RoboVM default arguments
* plugin arguments can also be specified in the robovm.xml via a <pluginarguments> tag with <argument> children

I'm sorry for the whitespace changes, i rigorously applied the formatter in all files i touched. You can view the changes without whitespace changes clicking on the "No whitespace" checkbox here on Github.

Please let me know which changes you'd like me to make.