GemPins pin merging improvements
Put responsibility for intelligently merging multiple pins for the same underlying item (e.g. from different sources like YARD and RBS) into the Pin class hierarchy.
Changes were driven by using rbs_collection to gather more types for solargraph-rails. This resulted in the Rails gems having pins with up to four sources each - the .rb files themselves, the annotations in solargraph-rails, the auto-generated RBS files (with no types) in rbs_collection, and explicit types from solargraph-rails. Quality of types and signatures varied wildly, leading to logic to make a more informed decision on how to merge pins.
There's probably a future where some of the rbs_collection-driven heuristics inside move to a default config file that can be extended or maybe overridden by users.
Regression tests for these are the definition files in solargraph-rails: https://github.com/iftheshoefritz/solargraph-rails/tree/main/spec/definitions/rails7 - after https://github.com/castwide/solargraph/pull/892 is merged, that will become part of our regression suite as well.