add `zap` stanza to DSL

HOLD 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