replaceLast and some replaceFirst fixes

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 also adds doc unittests to both
`countUntil ` works correct with narrow strings. It use `std.utf` thought `std.array.front`.