code: def add_parser(self, *args, **kwargs):
          
          command_name = args[0]
          new_kwargs = kwargs.copy()
          new_kwargs['configman_subparsers_option'] = self._configman_option
          new_kwargs['subparser_name'] = command_name
          subparsers = self._configman_option.foreign_data.argparse.subparsers
          a_subparser = super(ConfigmanSubParsersAction, self).add_parser(
              *args,
              **new_kwargs
          )
          subparsers[command_name] = DotDict({
              "args": args,
              "kwargs": new_kwargs,
              "subparser": a_subparser
          })
          return a_subparser
docs: each time a subparser action is used to create a new parser object
          we must save the original args & kwargs.  In a later phase of
          configman, we'll need to reproduce the subparsers exactly without
          resorting to copying.  We save the args & kwargs in the 'foreign_data'
          section of the configman option that corresponds with the subparser
          action.