std: Bring back half of Add on String

This adds an implementation of Add for String where the rhs is `<S: Str>`. The
other half of adding strings is where the lhs is `<S: Str>`, but coherence and
the libcore separation currently prevent that.