Add some methods to our ArgumentParser class to deal with subparsers more easily
Switch subcommands to use the event system