Expand WTF::StringView's API to be more like StringPiece.

StringView no longer owns the string passed into it, and can now wrap
a raw ptr to some characters.

This allows us to leverage the inline strlen optimization where the
compiler will embed the length of literal strings into the binary. It
also allows the deletion many overloaded methods that used to take
an LChar*, UChar* or String and can now just take a StringView instead.

For example the two constructors in TextRun are now a single one that
takes a StringView. This needed to be done in this patch to avoid
ambiguous constructors.

Future patches will replace CSSParserString with StringView, and also
vastly simplify the huge number of overloads on various methods. We'll
also expand the API surface of StringView to include the many useful
operations that StringPiece has.

BUG=615174

Review-Url: https://codereview.chromium.org/2007103003
Cr-Original-Commit-Position: refs/heads/master@{#396493}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 330deea56e27bc760fa52101040a51428bb7f582
diff --git a/String16WTF.h b/String16WTF.h
index 4ee9c8d..533dd2d 100644
--- a/String16WTF.h
+++ b/String16WTF.h
@@ -73,7 +73,7 @@
 class String16Builder {
 public:
     String16Builder() { }
-    void append(const String16& str) { m_impl.append(str); };
+    void append(const String16& str) { m_impl.append(StringView(str)); };
     void append(UChar c) { m_impl.append(c); };
     void append(LChar c) { m_impl.append(c); };
     void append(char c) { m_impl.append(c); };