Issue 10203 - std.string.toUpperInPlace is... not in place

This fixes #10203: toUpperInPlace is not in place. This new implementation is 100% in place, and, AFAIK, efficient.

This also addresses #10204: std.string does not take title case into account. It does not completely fix it though.

Algorithms are brand new, so diff view is mostly irrelevant.