Move LSIF artifact processing to a subprocess

We've recently added some LSIF-parsing code to workhorse. When gitlab requests it, we take the artifact being sent to us by the client and rewrite it, parsing the .lsif file it contains and replacing it with a number of .json files.

Currently, this is done in the context of the main gitlab-workhorse process. I'm starting to think that maybe we should push it to be a separate subprocess, similar to gitlab-zip-cat and gitlab-zip-metadata, so we can isolate its impact more effectively.

The entry point at the moment is here: https://gitlab.com/gitlab-org/gitlab-workhorse/-/blob/master/internal/upload/rewrite.go

The benefit of putting it into a subprocess is that, say, memory leaks have confined scope. The main disadvantage is that we have to carry another 10MiB+ binary around in packages, etc.

Thoughts @patrickbajao @jacobvosmaer-gitlab @igor.drozdov ?

I was reminded of this by a comment in slack (I think) by Jacob about process isolation in the workhorse context; it reminded me that we don't have it here!

Edited by Nick Thomas