Reimplement options as es6 class CompileOptions.
CommandOptions extend CompileOptions with commander-specific
features.
Add tests for CompileOptions and CommandOptions