py3: runner: Drop deprecated raise syntax
py3: runner: Add a python2+3 compatibility shim for input()
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.
runner: Switch to argparse's version action for --version

Since the version action does not support newlines, we also have to
rewrite the way the version is displayed.