codeintel: add dev tool for diffing of semantic indexes
Created by: shrouxm
a lot of the LoC is generated test code
the fourth + last commit is all the new code. first couple commits are simple moves/cleanup. third commit is a somewhat involved refactor to deduplicate some logic I copy pasted ages ago for the semantic REPL which i now actually want to use
seeking feedback on the review experience of this pr