str: Implement a faster Chars iterator for &str

Reimplement the string slice's `Iterator<char>` by wrapping the already efficient
slice iterator.

The iterator uses our guarantee that the string contains valid UTF-8, but its only unsafe
code is transmuting the decoded `u32` into `char`.
Thank you for the comments! I didn't like the look of `*foo.unwrap_or(&0)`, I think this is better