naked pkg support + major container refactor

`Cask::Installer` was already much too complex, so I took this
opportunity to throw a `Cask::Container` abstraction around the
extraction part of the package install step.

It goes like this: a Cask's URL points to a Container of some sort. The
containers we currently support are: dmg, zip, tar, and (new) naked.
Naked refers to a raw file that just needs to be copied in place. This
currently just means a pkg file, but in the future it may expand.

A Container knows how to do two things: identify a path as being its
type (`Container.me?`) and extracting the contents of its container to
the proper destination for a Cask (`Container#extract`).

The first Cask we have that supports the naked pkg type is
`heroku-toolbelt`. (Thanks to @sheerun for the Cask definition.)

Other miscellania batched in with this refactor:

 - switched to an explicit require strategy rather than globbing
 - `Cask::Installer` is instantiated now to match its interface with
   other similar collaorators
 - simplified zip and tar identification to shorter strings rather than
   exact matches of full `file -Izb` output
 - `Cask::SystemCommand` gets explicit output redirection options
 - many rogue backticks replaced to properly use `SystemCommand`
 - fixed misnamed test file `link_checker_spec.rb`
 - remove some extraneous `after` clauses in tests; leaning more on
   `test/support/cleanup.rb` to uninstall for us
 - pkg uninstall `:files` gets a `-rf` to support removing dirs

refs #839 and #1043
Update Alfred to 2.0.8
Merge pull request #1069 from julionc/alfred-2.0.8_212

Update Alfred to 2.0.8
Merge pull request #1068 from phinze/nakedpkgs

naked pkg support + major container refactor
naked pkg - save files with spaces properly
when uninstalling pkgs; sudo chmod before examining

this helps avoid a situation (which happened with `wav-tap`) where the
non-priveleged ruby code gets permision denied errors while examining the
contents of directories using `Pathname`.
pkg uninstall: support kernel extension unloading

this should complete support for `wav-tap` and finish out #839
update owncloud to version 1.4.0
Merge pull request #1071 from gill0r/owncloud.rb

update owncloud to version 1.4.0
Merge pull request #1070 from phinze/kext

Support for WavTap
require tmpdir to fix container error

the tests require tmpdir for themselves, which is why they didn't catch
this. i hate ruby libraries like this...
add pixel-check; a dead pixel tester
Merge pull request #1072 from phinze/pixel-check

add pixel-check; a dead pixel tester
Add BSD 2 Clause License
Merge pull request #1073 from NanoXD/master

Add BSD 2 Clause License
reverse default for SystemCommand's print option

we were setting it to false basically everywhere and it was getting
a little silly
fix a few bugs around recent changes

 - re-added a lost nil guard on `Dmg` containers
 - `FakeSystemCommand` was still returning an array of split lines
   instead of a string, even though its real counterpart switched to
   string when install/uninstall landed
 - flushed out an alfred cli bug
 - moved plist parsing down to SystemCommand layer
Update Amethyst for version 0.8.1.
Merge pull request #1074 from ianyh/master

Update Amethyst for version 0.8.1.
Add Cask for Flip4Mac

Flip4Mac components allow you to play, import, convert and make Windows Media
video and audio files on your Mac.