Support external commands beneath `brew cask`

I'm sure some people may think it is silly to have external-commands-under-external-commands.  Rationale:
- We follow Homebrew philosophy where possible.
- There will always be features like #2246 that only a small number of users are interested in.  Why not let them implement that feature for private use?  It also gives us a satisfactory and positive way to answer the issue.
- Extensibility in the right hands can lead to unexpected new features, even new projects such as homebrew-cask itself.