pull cask loading out into classes

 - introduce Cask::Source to encapsulate different types of loading
   behind a consistent interface
 - mostly this is method-level reorg, kept refactoring of the internals
   of these methods to a minimum for this pass
 - this is preparatory cleanup for adding the ability to represent a
   cask without a backing ruby file
Merge pull request #1761 from phinze/cask-load-source-refactor

pull cask loading out into classes