[clangd] Implement a smart version of HeaderSource switch.

Summary:
This patch implements another version header-source switch by incorporating the
AST and index, it will be used:
  - to improve the current header-source switch feature (layer with the
    existing file heuristic);
  - by the incoming define-outline code action;

Reviewers: kadircet

Subscribers: mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

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

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