Functional tests for the GitVersionControl class.

Travis CI seems to fail to run `git commit` commands, so the
functional tests are excluded from the CI run.

Removed the VersionControlFactory that doesn't actually do much.

The functional tests should be run locally, and work as expected
within the vagrant VM.