Add QProgramOption, implement most of QProgramOptions.