This is a full rewrite of the zsh completion based on the changes we
made to support external commands. A function for each brew command
handles only that command's arguments. The main completion function
dispatches the completion flow to the correct function. This
generically works with both internal and external commands.
This change includes all arguments for all internal brew commands.
Some commands are missing argument documentation due to missing help
docs.