some zsh completion fixes

The first one is very simple. The replacement of colons in option descriptions needs to be global, because some descriptions have multiple colons. Otherwise the script will error out when completing for an option like that.

The second makes the script more aware of the type of each option. Previously, argument-less options would still be completed as if they took arguments, so you couldn't complete anything in the word after such an option. Also, the custom completed options like `--ao` claimed to take two arguments, for a similar effect. I also made it use `--opt=value` instead of `--opt value` by default.

I was planning to also implement generation of `--no-opt` for Flag options and completion of values for Choice options, but I figured I should send these first because the current script is actually broken. I'll probably do the other stuff another day.