Use iterators for str::is_utf8.

See the commit messages for more details, but this makes `std::str::is_utf8` slightly faster and 100% non-`unsafe`.