handle fully-qualified cask names, fixes #2235

form `<user>/<repo>/<cask>` may be used on cmdline, matching homebrew
- refactor `Cask::Source::Tap` into `Cask::Source::Tapped`, removing
  code, only handling unqualified cask names here now (*ie* no slash)
- create `Cask::Source::TappedQualified`, handling `<user>-<repo>/<cask>`
  form as before, and new form `<user>/<repo>/<cask>`, for the case that
  the relevant tap already exists
- create `Cask::Source::UntappedQualified`, handling both command-line
  forms as above, but implicitly creating adding a new tap if it
  does not already exist
- add module `Cask::QualifiedCaskName` for utility functions on qualified
  Cask names