Coerce `:files` to Array in `uninstall`

before invoking `each` method.  This is necessitated by Homebrew's
switch to Ruby 2.0.

Also standardize how all `uninstall` directives are coerced to Array,
in a way that is compatible between Ruby 1.8 and 2.0.

Fixes #4784.
More robust `:signal` directive in DSL

Coerce more variations into pairs.
`uninstall` `:files` in chunks

micro-optimization; minimize shell invocations
improve `:signal` debug message
Downgrade Cask install errors to warnings

Including the case where a Cask is already installed.
Always continue installing when multiple Casks are specified,
only raising an exception at the end of the command (if some
portion of the attempted install actions failed).  Never
exit with an error code if "already installed" was the only
problem seen during the run.

Also tweak error messages.

Fixes #1347, #2677, #4785

Required disabling two tests regarding suggestions on Cask
spelling errors.
allow multiple `uninstall` stanzas to work

fixes longstanding bug; aligns code with docs
Allow invocation of subcommand with full paths

Full paths to subcommand source and Ruby may be given,
which is helpful in troubleshooting, particularly for
forcing a specific Ruby version.

Example usage:
```bash
$ HOMEBREW_BREW_FILE=/usr/local/bin/brew /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby /usr/local/Library/brew.rb /usr/local/bin/brew-cask.rb help
```

Previously, this would work, but throw an odd error when
returning to Homebrew.  Fix: we unconditionally do not
return to Homebrew.
updated findings (latest)
Merge pull request #4809 from vitorgalvao/update-findings

updated findings (latest)
Add MacTubes.app v3.1.6

MacTubes is a YouTube video player and downloader.
Merge pull request #4810 from sorbits/MacTubes_v3.1.6

Add MacTubes.app v3.1.6
update version on `pkg` filename in tvmobili.rb

Fixes #4803
Installation should fail if pkg file nonexistent
Merge pull request #4804 from rolandwalker/uninstall_coerce_ruby_2.0

fix uninstall for ruby 2.0, multiple uninstall stanza, more
Merge pull request #4787 from rolandwalker/already_installed_is_not_error

Downgrade Cask install errors to warnings
Merge pull request #4807 from rolandwalker/allow_full_path_troubleshooting

Allow invocation of subcommand with full paths
Merge pull request #4811 from rolandwalker/tvmobili_version

update version on `pkg` filename in tvmobili.rb
Add uninstall stanza for TVMobili
Merge pull request #4814 from alebcay/tvmobili

Add uninstall stanza for TVMobili
Updated ghc to 7.8.2-r6