rename String => AbstractString

This seems like a pretty big improvement in the intention of the `AbstractString` type. It also clears the path for using the `String` name for the standard string type, i.e. a future replacement for both `ASCIIString` and `UTF8String`.