[clangd] Define out-of-line initial apply logic
Initial implementation for apply logic, replaces function body with a
semicolon in source location and copies the full function definition into target
Will handle qualification of return type and function name in following patches
to keep the changes small.
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Differential Revision: https://reviews.llvm.org/D69298