new std.array.replaceLast

While testing of replaceFirst with utf8 string I found a bug and fixed that.
This lead me to add replaceLast because I needed such a function in the past and didn't want to retro four times.
This doesn't concern this PR per se, but wow, look at how much autodecoding has uglified the code! I'm really starting to wonder if it's worth the trouble to remove autodecoding after all. It's like a tax that you have to pay continually, with only small benefits. @WalterBright