Krun options

**please review**

* use JCommander for krun
* clean up krun frontend to be more generic
* fix some hacky behavior in some of the options
  I don't like that part for this reason: If we want to change some output files in the future we need to figure that this code decides on what files we're generating and we need to modify this part too. Also, it's not possible to specify multiple files and we can't specify whether we're generating a file of directory. We'll get errors if we're generating a file but we have a folder with same name.(and the other way around)

Instead why not put generated files to backend interface so that frontend and make frontend ask to backend for "tell me what files are you generating so that I can check them for you" ?

So main problem is that we're keeping related parts in completely unrelated parts. Some info related with specific backends are defined in kompile frontend.