use perfect forwarding to simplify impl of String::operator=
simplify String impl
move things around in String