This patch 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 (should this be allowed though?).
- simple literals and references are not extractable.
This patch also adds support for full source ranges to clang-refactor's test mode.