Check for required options after argument parsing

This surely looks odd at first but doing the required-checks after the argument parsing (not during) allows something pretty neat. Ini configs can overwrite default values of required options and there is no need for additional arguments for the options to pass the required-checks. The added test demonstrates the new behavior.

This pull request will also resolve #42 and #54. I will write examples for the issues when the request gets merged.

(Since I want to pass all tests with each commit, I had to remove some lines from parser.go because "options" was not used anymore. this will conflict with #73. I will rewrite the conflicting pull request of course when one gets merged)