Add String.upcase/upcase!

Merging around was too complicated.
This replaces #369