Make GitCloneOptions a struct to fix issue #635
BaseFixture: easy creation of a config-isolated repository

We should try to keep the user's configuration away from the tests as it
may affect what the code ends up doing. To that effect,
InitIsolatedRepository() returns a Repository with some dummy
configuration.

This includes moving the fetch tests over to this.
RefspecFixture: use the isolated repository
BaseFixture: allow passing options to the isolated repo

By default we still generate a config-isolated Repository, but if the
user passes their own options, we'll use that instead.