Add a prototype for clangd

clangd is a language server protocol implementation based on clang. It's

supposed to provide editor integration while not suffering from the

confined ABI of libclang.

This implementation is limited to the bare minimum functionality of

doing (whole-document) formatting and rangeFormatting. The JSON parsing

is based on LLVM's YAMLParser but yet most of the code of clangd is

currently dealing with JSON serialization and deserialization.

This was only tested with VS Code so far, mileage with other LSP clients

may vary.

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