Added functional test to cover GitVersionControl.

Removed pointless VersionControlFactory.

Updated .travis.yml to run function testsuite.