Look locally for cached cookbooks

- :warning: changes the default location to `:site` - I couldn't figure out how to leave it undefined in this code
- uses git revisions (tag, rel, and branch) 
- allows the user to specify a name to the `CachedCookbook.from_path` method
- original discussion: #392 

All the specs are passing, but I don't think it's perfect yet. I'd like some review and comments, but I think it's easier to see the diff and whatnot, hence the PR.

/cc @reset @justincampbell