Move all code under an `Hbc::` namespace

* 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

No functional change.

This is sort of a make-it-worse-to-make-it-better PR, with several purposes in mind, and several further steps demanded:
* we have a general overload of the word "Cask".  For example, the current recommended upgrade command reads like gibberish because of the repetition.  In the backend code, we use Cask to refer to the recipes, and Cask as the toplevel namespace, which is often confusing.  This removes "Cask" as a toplevel namespace.
* after this change, there are numerous places that make a great deal [less sense to read](https://github.com/rolandwalker/homebrew-cask/blob/a66984885395c151bf6d95e5a1712d803e753993/test/cask_test.rb#L7).  That's more or less intentional: the confusion is made explicit, where it was covered up in the past.  Those are all places that require substantive refactoring.
* this is a step toward converting Casks to instances.  To create Cask instances, we need to define a specific subclass, perhaps `Hbc::DSL`, and evaluate Casks within that class using `class_eval`.  (Currently Casks are classes, evaluated with plain `eval` and `TOPLEVEL_BINDING`, inheriting from class `Cask` aka `Hbc`.)
* this PR is also needlessly explicit about the namespace in many places.  After unification, we can go back and remove redundant expressions.  For example, we need not say `Hbc::Utils` when `Utils` is sufficient.  We can also just `include Hbc::Utils` and use the relevant methods without a namespace.
* the toplevel `Hbc` namespace should probably become a module instead of a class, which is again beyond the scope of this PR, which is nothing but renaming.