The standard matcher API uses StringRefs to identify bound nodes. This patch
introduces a strong type thats allows distinguishing ids from arbitrary text in
APIs. It additionally adds a templated version which can indicate the AST type
to which the id is bound.
This patch is the second in a series intended to improve the abstractions
available to users for writing source-to-source transformations. A full
discussion of the end goal can be found on the cfe-dev list with subject "[RFC]
Easier source-to-source transformations with clang tooling".