str: rm `map_chars`, replaced by iterators

mapping a function against the elements should not require allocating a
new container, but `collect` still provides the functionality as-needed