DSL add uninstall `:delete` and `:trash`

- `:delete` is intended to replace `:files`
- `:trash` is intended to move files to the OS X Trash
- `:trash` is only a stub — currently all three function identically

References: #4688
move read_script_argument to Cask::Artifact::Base
generalize read_script_arguments

so that it can be called from multiple stanzas
harmonize error messages
read_script_arguments accepts defaults/overrides

as parameters.  Accept overridden keys when submitted by the
caller, but warn that they are ignored.
Update Vienna 3.0.0 rc1
updated instacast (1.2.5-2294)
Merge pull request #5151 from hanxue/vienna

Update Vienna 3.0.0 rc1
Update YNAB 4 from 4.3.451 to 4.3.541

Redo of PR #5084 overwritten by commit d4605c8.
Merge pull request #5175 from fapper/patch-3

Update YNAB 4 from 4.3.451 to 4.3.541
add `install_script` artifact

name matches `uninstall :script`

References: #4688
DSL tests for `install_script` stanza
Merge pull request #4951 from rolandwalker/add_installer_stanza

DSL: add `install_script` stanza
Merge pull request #4928 from rolandwalker/unininstall_trash_delete

DSL: add uninstall `:delete` and `:trash`
Add Cloud Foundry's CLI (`cf`) v6.2.0

The Cloud Foundry CLI is one command:  `cf`

The command enables the user to log into a Cloud Foundry
deployment and to make changes to services, brokers,
quotas, organizations, routes, etc....

The Cloud Foundry CLI is open source and written in Go.
Merge pull request #5176 from cunnie/cloudfoundry-cli

Add Cloud Foundry's CLI (`cf`) v6.2.0
Merge pull request #5174 from vitorgalvao/update-instacast

updated instacast (1.2.5-2294)
Add Cycling74 Max
Upgrade Leap Motion to 1.2.1
xquartz Cask remove X11 folder on uninstall