codeintel: surface per-upload retention reasons
Created by: Strum355
Previously, it was not always easily viewable in the UI whether or why an LSIF upload is retained or not. The git object preview list only showed up to a certain number of revhashes and only for a single policy at a time. This PR surfaces the list of matching retention policies, and referencing uploads, on the LSIF upload page.
Test Plan
- Plenty of test cases for the backend in https://github.com/sourcegraph/sourcegraph/blob/nsc/upload-retention-overview/enterprise/cmd/frontend/internal/codeintel/resolvers/upload_retention_test.go
- Manually tested full flow in local dev
- Some frontend stories written for visual testing