Implement semantic selections.

Summary:
For a given cursor position, it returns ranges that are interesting to the user.
Currently the semantic ranges correspond to the nodes of the syntax trees.

Subscribers: mgorny, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D67358

git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@371976 91177308-0d34-0410-b5e6-96231b3b80d8
5 files changed