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
That's not going to be ok.
A quine program must take no input. Please revert this.
I should be able to just run a definition and not give it any input. If krun can't do that, then it has a problem.