The `Hbc.outdated` boolean was in the way of my implementation of an
`outdated` scope for `brew cask outdated`, so I took the opportunity to:
* rename the flag internally to `cleanup_outdated`
* move the cleanup tests over to rspec and rework them to test in a
stubbed cleanroom environment
* refactor the implementation of cleanup to make it a bit more
testable - most importantly: inject the cache location and outdated
config dependencies instead of looking them up from constants
Note that there's no change to the user-facing interface, it's still
```
brew cask cleanup --outdated
```
* convert existing Cask:: namespace to Hbc::
* move Homebrew-fork code under Hbc::
* move freestanding classes such as Tty and TopologicalHash under Hbc::
* recast HOMEBREW_CASK_ constants as HBC_
* modify our Homebrew Formula for backward compatibility
* devscripts and dev docs