Periodically purge inactive bare repos from Zoekt

As described in !107891 (comment 1264814513) and gitlab-build-images#118 (moved) . The bare repos used by Zoekt are just an intermediate (cache) used to generate the .zoekt index files. Some projects may be inactive or updated very infrequently. To save disk space we could purge bare repos that haven't been updated in a long time.

This would need to be some process on the Zoekt servers which runs periodically checking some indicator of the last time it was updated (maybe modtime on .git files) and if it's older than a certain time then we can delete this bare repo and the next time it's updated it will just get cloned fully again. We'd need to consider some locking to avoid race conditions where it is just being cloned and updated right now and we delete it and cause issues.

One consideration is that if indexing is paused then from Zoekt's perspective there won't be any updates happening to any repos so we would want to ensure that this does not delete our entire cache of bare repos.

Edited by Dylan Griffith (ex GitLab)