DSL: add `zap` stanza

HOLD until #4865.  Tests will fail until #4865.  Will also MERGE CONFLICT
after #4865, and require minor cleanup.

The zap functionality here is in working form, but there is not a
corresponding `brew cask zap` command verb, which is to be supplied
in a separate PR.

Like other forward-compatible DSL extensions, it is intentionally
undocumented.

References: #4688