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.