Fixing Git support for sha, tag, branch

This allows multiple cookbooks to be pulled from different branches of 
the same git repository.  In the current release, the git repo is cloned and the ref is checked out the first time it's mentioned in the Berksfile.  Any other references to the repo on different branches are ignored due to the way we were using git.  I've changed the checkout process to check out the revision pointed to by the branch or tag name.

The test suite now tests sha revisions, tags, and branches.