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.

    In order to develop `gitlab-test`, you must comment out the corresponding branch line from `BRANCH_SHA` before you are done, since you cannot know the SHA, and after you are done you must update it.