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;
this class doesn't seem to have any state(apart from saving AST in constructor and using it in call to collect), why not just have a vector<Decl> collectDecls(ParsedAST& AST); ?