codeintel: Add commit graph utilities
Created by: efritz
This PR adds utilities used to calculate which uploads are visible to which commits given a commit graph and the complete set of uploads for a repository. This will be used to re-calculate visibility on each update of a repository's LSIF data, and on-demand when an unknown (newer) commit is requested. We currently do the same thing but at query time using the recursively defined CTEs in cte.go.
This is part of a larger effort towards https://github.com/sourcegraph/sourcegraph/issues/12098.