Add asbm test repository

Refer to http://nvie.com/posts/a-successful-git-branching-model/ for a
high level view of this repository layout
Add tooling to help working against test repositories
Improve GitFlowVersionFinder.FindVersion() test coverage
Enforce UpdateAssemblyInfo.Execute() test coverage
Make UpdateAssemblyInfo.Execute() require one remote when being run on a TeamCity agent
Ensure some basic requirements from the processed repository

Target repository should contain 'master' and 'develop' branches.
Ensure a feature branch is always created from the develop branch

Also make FeatureVersionFinder.FindFirstCommitOnBranch() not rely on the ref log to identify the first commit of the feature branch.
Un-ignore CanDetermineTheVersionFromAFetchedFeature() test
Drop .GetBranch() extension method

Local branches "develop" and "master" are expected to always exist. They're dynamically recreated from the fetched remote tracking branches when GitFlowVersion is being run on a TeamCity agent.
Ensure a hotfix branch is always created from the master branch