Fix string assert and dead code which caused it.

Running tools with a '--' parameter caused SkString to assert here
incorrectly. SkString::remove should allow the entire contents of a
string to be removed.

The code in the flags parser which caused this call is dead and should
be removed.

R=mtklein@google.com, reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/453333002
diff --git a/src/core/SkString.cpp b/src/core/SkString.cpp
index ba1da41..1e29dc7 100644
--- a/src/core/SkString.cpp
+++ b/src/core/SkString.cpp
@@ -589,24 +589,22 @@
     size_t size = this->size();
 
     if (offset < size) {
-        if (offset + length > size) {
+        if (length > size - offset) {
             length = size - offset;
         }
+        SkASSERT(length <= size);
+        SkASSERT(offset <= size - length);
         if (length > 0) {
-            SkASSERT(size > length);
             SkString    tmp(size - length);
             char*       dst = tmp.writable_str();
             const char* src = this->c_str();
 
             if (offset) {
-                SkASSERT(offset <= tmp.size());
                 memcpy(dst, src, offset);
             }
-            size_t tail = size - offset - length;
-            SkASSERT((int32_t)tail >= 0);
+            size_t tail = size - (offset + length);
             if (tail) {
-        //      SkASSERT(offset + length <= tmp.size());
-                memcpy(dst + offset, src + offset + length, tail);
+                memcpy(dst + offset, src + (offset + length), tail);
             }
             SkASSERT(dst[tmp.size()] == 0);
             this->swap(tmp);