Fix version of test seed branches to specific revisions. Only clone if necessary.

This PR tries to do `update-ref` on each branch of `gitlab-test` to fixed versions, and only then fetches. This achieves the following goals:

- no more need to use the network to run tests. Continuation of and rationale at: https://github.com/gitlabhq/gitlabhq/pull/7823 . Running a single test 15s for me, and just cloning gitlab-test takes 6.

- tests cannot break spuriously on old branches. Before this pull, changes to gitlab-test could break your tests at any time. Not anymore since we use `update-ref` to determined versions. This is only possible because we have fixed the versions of each branch.

- makes it easier to develop gitlab-test together with new tests: this PR generates a non bare version of gitlab-test at `tmp/test/gitlab-test` which you can edit and use with new test cases immediately.
There are now 2 factories: one non-bare, which you can edit directly to update `gitlab-test` for the new tests if needed, and one bare, cloned from that one every time.