String: Use std::vector<unsigned char> as internal storage.
String: Fix off-by-one.