[refactor] Initial outline of implementation of "extract function" refactoring
This commit adds an initial, skeleton outline of the "extract function"
refactoring. The extracted function doesn't capture variables / rewrite code
yet, it just basically does a simple copy-paste.
The following initiation rules are specified:
- extraction can only be done for executable code in a function/method/block. This means that you can't extract a global variable initialize into a function right now.
- simple literals and references are not extractable.
This commit also adds support for full source ranges to clang-refactor's test
Differential Revision: https://reviews.llvm.org/D38982