The motivation here was that operations which were using the const version of this function might as well be using Peek(), since it does essentially the same thing. And since Peek() was updated to return StringRef, it even provides a more useful interface than std::string.
On the other hand, operations which were using the non const version of the function won't work in an environment where StringExtractor stores a StringRef instead of a std::string, and on top of that they are unsafe since modifying the StringExtractor by exposing its internals breaks encapsulation and requires the user to remember to update the file pos lest the class enter an invalid state.
So I add a new SetString() method. Instead of calling GetStringRef() and then manipulating the result, you just manipulate a std::string you create yourself, and then call SetString().
Because calls to the const version of GetStringRef() are changed to using Peek(), certain functions that were reproducing functionality already built in to StringRef have been simplified quite a bit.
Also, was this a bug? I fixed it because it certainly looks like a bug, but if this is intended behavior please let me know.