Renames StringAnnotation to Span, adds StringSlab alias

(1) I renamed `StringAnnotation` to `Span`. I know I said we'd have to call it "StringSpan" because "Span" was already tied to Strings by its `in` method, but I figured out a very simple way to move the `in` method out of the `Span` trait, using an implicit value class. So we can just call it "Span" now.

(2) I added a `StringSlab` type alias. Note that it has to be a type alias, not a trait, otherwise the Slab type parameters will get even more complicated to ensure that a StringSlab subclass of Slab always returns StringSlabs, etc. Right now, the type alias is `Slab.StringSlab`, which you would typically import before using. I also considered `Slab.OfString`, with the idea that you wouldn't need to import - you'd just use the fully qualified type. I didn't have a strong opinion though, so I stuck with StringSlab.