Introduce a TopologicalHash class

In the interest of `depends_on :cask`, we introduce a topologically
sortable hashmap, implemented as a small subclass of Hash.
Add exception for cyclic Cask dependencies
Implement Cask dependencies

as a class concerned with recursively loading, graphing and sorting all
dependencies of a given Cask.
Satisfy Cask dependencies on install

Includes an unsavory hack to bypass redundant checks for Cask
subdependencies, in the form of an optional argument passed down from
`install` to `satisfy_dependencies`.
Add tests for depends_on :cask
BaseCamp 4.4.6
Upgrade send-to-kindle to v1.0.0.221
Add send-to-kindle plist to zap stanza
Merge pull request #8498 from jodal/basecamp-4.4.6

BaseCamp 4.4.6
Add fbreader v0.99.5-alpha
Add mplayerx name stanza, expanded zap stanza
Add paintbrush name and zap stanzas
Merge pull request #8504 from Dremora/paintbrush

Add paintbrush name and zap stanzas
Merge pull request #8503 from Dremora/mplayerx

Add mplayerx name stanza, expanded zap stanza
Merge pull request #8502 from Dremora/fbreader

Add fbreader v0.99.5-alpha
Merge pull request #8499 from Dremora/send-to-kindle

send-to-kindle v1.0.0.221
Add transmission name stanza, expand zap stanza
Add spotify name stanza, expand zap stanza
Add google-drive name and zap stanzas
Add adobe-reader name stanza, expand zap stanza