Third Relase of First Minor, C++ rewrite

Changes since last release:
    * logging is now done to debug instead of info;
    * a lot of code cleanup;
    * improved comments;
    * allow an option to be specified more than once, which makes it
      easy to grab all the values as a vector;
    + constructor added for option groups without synopsis;
    + port item::matching() over from the python branch and
    + construct the wanted item from cli arguments.