tweak 'with_formatter' method so it can be called from outside the parser
e.g.
@parser.with_formatter
def custom(parser, formatter):
    formatter.add_text('My Program, version 3.5')
    ...
print(custom(parser))
http://bugs.python.org/issue9341 - group subcommands

formater _format_actions already has a recursive sub-actions
So this change just involves adding a
_SubParsersAction._PseudoGroup class
which is like the ChoicesPseudoAction, except it maintains its own
_choices_actions list
See test_argparse for example of use.
e.g.
   grp1 = cmd.add_parser_group('group1:')
   grp1.add_parser('a', help='a subcommand help')