This prepares the numberous tests that occur in the ExternalProjectUpdate
test. The tests were passing previously because a fresh build was not performed.
Tests are added for UPDATE_COMMAND to ensure it is working properly. Testing
infrastructure is added along with tests for Git, but tests for other version
control systems could easily be added in the future.