This changes how RawComments are looked up, so that they can be added to the
cache or updated independently of parsing.
Loosely, the comment cache has two conceptually separate separate layers:
- RedeclComments - maps Decls to RawComments, which may have come from the Decl that is the key (a 'local' comment), or one of its redeclarations. The cache entry can keep track of whether the comment is local or a redecl.
- ParsedComments - maps Decls to FullComments, which may have come from the Decl that is the key, one of its redecls, or one of its bases (a base class, and overridden class method, ObjC interface, typedef, etc.).
This patch factors out the logic that maintains the lower RedeclComments portion
of the cache.