This change is inspired by the way that the git zsh completions work by foisting
the responsibility for sub commands onto the command themselves.
It is paired with another change that takes the oh-my-zsh brew cask plugin and
makes it into a first class completion rather than it overriding this.
This change requires fixes in brew, oh-my-zsh and the zsh-completions, and will
likely cause the brew cask completions to break until these have been fully
accepted into each project.