Refactor Gitlab(,::Elastic)::(,Project)SearchResults
These four classes should be reorganised. Currently, they're using inheritance quite haphazardly and there is a lot of duplication across them.
This is a followup to https://gitlab.com/gitlab-org/gitlab-ce/issues/30615 , which refactored "Global" search to introduce a "Group" search class. For the results, it may make more sense to have a single Results class instead of four, splitting the implementations of each search type out into composable units.