Remove Mercurial support

Don't worry, it will come back eventually.
Refactor locations to be autoloadable
Add an "extension" key to the Berksfile
Fix failing cukes
Add Berkshelf.which for detecting commands
Require the proper extension name in the Berksfile evaluation
Add a cookbook validator to the base location class
Use cookbook validation helper in git location
Remove custom Git classes
Remove Git errors from the errors file
Cache git locations

This commit changes the way we cache git locations. Git cookbooks are
now downloaded into a separate store where they are "cached". A copy is
then moved into the store with only the necessary information.
Remove git_location
Fix incorrect cuke test
Use buff-shell_out in git location