update CoC to 0.4

see https://github.com/Bantik/contributor_covenant
WIP forward-compatible DSL synonyms

This makes the following stanzas available in the DSL as
synonyms to existing stanza, with no change to existing
functionality:
- pkg for `install`
- app for `link`
- suite for `link`
- preflight for `before_install`
- postflight for `before_uninstall`
- uninstall_preflight for `before_uninstall`
- uninstall_postflight for `after_uninstall`

References #4688

This works, but is marked WIP because we are not in a hurry,
and because I intend to add tests.
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.
Android Studio 0.8.0 build-135.1245622

Closes #5089
Update MacDown to 0.1.1
Merge pull request #5091 from dlackty/master

Update MacDown to 0.1.1