More work trying to compartmentalize the program options

The solution I hacked together here seems awfully complex ... I don't like it.  Avoiding boost:program_options would sharply reduce the overall complexity of the code. oh well. Another boost fail.