Add ObjCProtocolLoc which behaves like TypeLoc but for
ObjCProtocolDecl references.
RecursiveASTVisitor now synthesizes ObjCProtocolLoc during traversal
and the ObjCProtocolLoc can be stored in a DynTypedNode.
In a follow up patch, I'll update clangd to make use of this
to properly support protocol references for hover + goto definition.
RAV changes should have tests