remove special properties of `caskroom_only`

HOLD until #4865 is merged.

After #4865, `caskroom_only` can be subclassed from Cask::Artifact::Base
like any other artifact.  It no longer has the special property of
making `uninstall` stanzas work.

This stanza has never been documented.  It is possible that it will
no longer be needed, after #4865 and subsequent cleanup on Casks that
use this form.

References: #4688
DSL: allow `version :latest` (symbol not string)

Forward-compatibility. Intentionally not documented.  When
version is a symbol, it may only be `:latest`.

References: #4688
add `gpg` stanza to DSL

For forward compatibility.  The stanza has no effect, and is
intentionally left undocumented at this time.

References: #4688
recast manually_uninstall method

as dispatch_uninstall_directives
pass stanza by name to dispatch, instead of set

the set contains the uninstall directives from the DSL,
possibly more than one artifact
change hardcoded "uninstall" in msgs to stanza var
recast uninstall_set as directives_set
recast uninstall_options as directives
promote `:uninstall` to an independent artifact

- separated from class `Cask::Artifact::Pkg` (the `:uninstall` DSL key)
- `:uninstall` can now be invoked for all Casks
- `uninstall_test.rb` also had to be separated from `pkg_test.rb`
recast install/uninstall methods: `install_phase`

and `uninstall_phase`, to improve clarity, now that we have an
independent `uninstall` artifact.
refactor dsl_test.rb into named sections
Extend `appcast` stanza to support multiple keys

- `:sha256`
- `:format` (default is `:sparkle`)
- `:latest_version` (experimental, may be removed)
tests for `appcast` stanza
Add `depends_on` stanza to DSL.

For forward-compatibility, intentionally undocumented.  Currently
works only as a synonym: `depends_on :formula` substitutes for
`depends_on_formula`, which is intended to be removed.

However, this PR also provides additional `depends_on` keys for
future expansion of functionality:
 - `:cask`
 - `:macos`
 - `:arch`
 - `:x11`
 - `:java`

The symbol names were chosen to match those used in Homebrew Formulae.

References: #4688, #2001
Add `license` stanza to DSL

References: #4688.

For forward-compatibility; intentionally left undocumented.

The `license` stanza is not free-form.  There is a limited
set of valid symbols, of which the argument must be a member.
(The set will later be documented, and probably needs amendments.)

Version numbers and variants of licenses are intentionally
ommitted.  The use-case for `license` is filtering and listing
of Casks. We want to avoid becoming a detailed repository of
application descriptions: that information can be found at the
`homepage` URL.
Add Metalab's Flow Cask
Correct `uninstall :launchctl` for dnscrypt.rb

`:launchctl` does not support wildcards, and the pattern would
have been incorrect in any case.

Closes #4800
Rename metalab-flow cask to only flow

Considering that the the original `flow` cask was discontinued, it
makes more sense to add the vendor prefix since its usage will only
decline
Merge pull request #5098 from gabrielizaias/metalab-flow

Add Metalab's Flow Cask
Upgrade Android Studio.app to v0.8.1 build-135.1248636