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.
In my opinion it is more of a problem of putting all that `isSomeString` stuff in `std.algorithm` instead  of `std.string`