Display all supported languages as part of command line options

Additionally move both the `--lang` and `--wire-protocol` command-line options to using a Choices option. This allows for more sensible errors and checking of arguments at the start of the script.