Reverting r1090111 - moving the text.translate escapers back from using Range to replicating parts of the Range API. See the list for details ('unnecessary boxing in StringEscapeUtils etc'), the move to Range was an uncomfortable fit.