Add the following matchers and unit tests:
- hasUnderlyingType() as a narrowing matcher for TypedefDecls()
- functionProtoType() matches FunctionProtoType nodes
- extend parameterCountIs() to FunctionProtoType nodes
Previously you could match a functionType() node, but such a node is not guaranteed to have a full function signature (it could be a C function that is forward declared with no prototype). Matching a FunctionProtoType() node allowed you to discriminate among the different kinds of functions based on their argument count.
\c FunctionProtoTypes