This includes renaming Downcase() to ToLower() and make it return a string rather than modify referenced arg. Also adds ToUpper() string version.
Additionally, it clarifies that the locale independency of the case functions is a feature and not a limitation. I interpreted it as the latter and rewrote code to be locale-aware before realizing this.
This is done in preparation for #11413 and as a general refactor. I don’t think the optimization that the pre-refactor state gave warrants the unwieldy usage.