String.Pos
String.Pos.Raw
This PR renames `String.Pos` to `String.Pos.Raw`. After an abbreviated deprecation cycle, we will then rename `String.ValidPos` to `String.Pos`.
This PR defines the new `String.Slice` API. Many of the core design principles of the API are taken over from Rust's [string library](https://doc.rust-lang.org/stable/std/string/struct.String.html).