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
previously it was already assuming the terminal color is black, it was just depending on implicit static state. By removing the static state, it was necessary to specify this additional information. It doesn't affect anything to assume the terminal is black, except that if the background of the terminal is actually red, it won't do anything special. But again that's already the case.