runner: Get rid of custom argument parsing code, use argparse instead

argparse has a wonderful subcommands feature which does everything we
want it to do, and more.