Functional tests for GitVersionControl

* Removed pointless VersionControlFactory
* Updated .travis.yml to run functional testsuite
* Updated include statements to echo a message on failure

To Do

- [x] `testGetStagedFilesWithModifiedFile`
- [x] `testGetStagedFilesWithPartialStagedFile`
- [x] Fix the tests failing on Travis CI