Replace flag with jwaldrip/odin

This allows us to create more structured commands and reduce confusion about
which arguments you have to pass when using zones, download or upload.

There is one "wart" in this, that the arguments are context-specific. So you
have to use `--dry-run` immediately after `upload` and not at the end of the
line. Per the comment in the README.

I've kept email and key as arguments, despite them being required, so that
we don't have a bewildering long list of positional arguments.

---

There's also a temporary workaround for the order of flag arguments. Working with upstream to change this, then we can revert the last commit and remove the caveat from the README.
Done