A view ran four git processes for each repository whose state wasn't
cached, with no limit, and each concurrent view did the same.
RepositoryState now runs one read at a time and gives up with its
context. The page reads for at most two seconds, lists the rest without
branches and commits, and says how many are left; the cache keeps what
was read, so each reload reads more.
Also test that an upstream, a repos pattern and a repository with
uppercase letters are listed as spelled, and correct two comments.