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.
Merge pull request #4865 from rolandwalker/allow_all_uninstall

DSL: allow all Casks to use `uninstall` stanzas