Only sets selected_unpacker to an unpacker
Adds 'subparsers' argument to pre_parse_args
Print traceback before calling warn()

Depending on warnings setup, warnings.warn() might raise, so the next
line might not be reached.