restrict visibility of Cask namespace in Formula

@phinze, I realized that #2503 made the `Cask` class visible in the Formula, which is contributing to #2830 and many others.

I have no idea what the most idiomatic fix would be.  This is one attempt, which turns `cask/version.rb` into a module, and then `include`s `VERSION` as a mixin.

This does solve the namespace clash when loading Formulae, and preserves the visibility of the same `VERSION` number to our internal code so we don't need to set it twice.