Git repositories will be initialized less often and then copied for each
spec. This reduces the calls to 'git' and the total execution time of
the specs.
* FEATURE: Adds support for git tags
* Detects when the tracked branch has been deleted from `origin` and forces a rebuild on the command line
* Allows updating when a tag is tracked and the tag was moved to a new commit
* Improves support for shallow clones
* Works with partial clones
* Adds lots of specs for git commands and replaces the existing specs. All specs use real git repositories instead of mocks