Update and improve zsh completion
Update and improve zsh completion

Added completion of installed crates and unstable flags along with
some newer options.
Factored out the definition of some common options into variables.
Corrected the syntax of option exclusion lists which contained commas
--verbose can be repeated so now has * instead of the self-exclusion
Internal functions given _cargo prefix as per zsh conventions
Completion of normal arguments to many subcommands was missing
Pass -s to _arguments to allow clumping of short options, -S for correct
handling of -- and -C for correct context handling.

For unknown cargo subcommands, it will now try a _cargo-<subcommand>
function if found and fallback to _default allowing cargo plugins to
define their own completion. This is common zsh practice, see e.g. _git.

rustyhorde/cargo,rust-lang/cargo,nipunn1313/cargo,vojtechkral/cargo,eminence/cargo,tsurai/cargo,tshepang/cargo,tshepang/cargo,nipunn1313/cargo,eminence/cargo,vojtechkral/cargo,rustyhorde/cargo,eminence/cargo,rustyhorde/cargo,tsurai/cargo,rustyhorde/cargo,vojtechkral/cargo,eminence/cargo,vojtechkral/cargo,tshepang/cargo,tsurai/cargo,rust-lang/cargo,nipunn1313/cargo,rust-lang/cargo,nipunn1313/cargo,tshepang/cargo,rust-lang/cargo,tsurai/cargo,tsurai/cargo