command line options parser, defaults and validator