[LibTooling] Add function to translate and validate source range for editing
Adds the function getRangeForEdit to validate that a given source range is
editable and, if needed, translate it into a range in the source file (for
example, if it's sourced in macro expansions).
Differential Revision: https://reviews.llvm.org/D64924