[LibTooling] Add RangeSelector library for defining source ranges based on bound AST nodes.
The RangeSelector library defines a combinator language for specifying source
ranges based on bound ids for AST nodes. The combinator approach follows the
design of the AST matchers. The RangeSelectors defined here will be used in
both RewriteRule, for specifying source affected by edit, and in Stencil for
specifying source to use constructively in a replacement.
Subscribers: mgorny, cfe-commits
Differential Revision: https://reviews.llvm.org/D61774