[WIP] Git flow support

To match the feature set of GitFlowVersion the following needs to be done

 - [x] Abstract Log
 - [ ] Rename project to GitVersion
 - [ ] Introduce MSBuild task which wraps the main project
 - [x] Port the GitFlowVersion detection code to the correct version strategy
 - [ ] Port all the GitFlow integration tests covering many branching scenarios
 - [ ] Ship the GitVersion exe as a chocolatey package
 - [ ] Ship two NuGet versions of GitVersion, GitVersion.Console (same as GitHubFlowVersion nuget) and GitVersion, which is a library which can be referenced
 - [ ] Possibly support the exe outputting json as the Console output, and the log file going to a file. The two projects work opposite at the moment, the json output is done to a file.
 - [ ] Fix TODOs
 - [ ] Use the stability, branch info, Sha etc in the output
 - [ ] Extend the tests for GitHubFlow to cover the stability and branch info stuff
 - [ ] Figure out a better way for `develop` to be versioned, because it is not actually following SemVer