Fix StringBuilder append assumptions.

Do not rely on use ordering, it can be different because of
SimplifyReturnThis(); just use HBackwardInstructionIterator.
Instead of checking that we find a StringBuilder.toString(),
check that it is the invoke we're trying to simplify.

Add regression test 699-checker-string-append2.

Test: testrunner.py --host --jvm -t 699-checker-string-append2
Bug: 19575890
Bug: 146014745
Change-Id: I7b16f376c16ba5a4107e9718e0acf17d82280f54
diff --git a/test/knownfailures.json b/test/knownfailures.json
index 559bee7..5584382 100644
--- a/test/knownfailures.json
+++ b/test/knownfailures.json
@@ -1033,6 +1033,7 @@
           "685-shifts",
           "686-get-this",
           "687-deopt",
+          "699-checker-string-append2",
           "706-checker-scheduler",
           "707-checker-invalid-profile",
           "714-invoke-custom-lambda-metafactory",
@@ -1105,7 +1106,7 @@
         ],
         "variant": "jvm",
         "bug": "b/73888836",
-        "description": ["Failing on RI. Needs further investigating."]
+        "description": ["Failing on RI. Needs further investigating. Some of these use smali."]
     },
     {
         "tests": ["530-checker-peel-unroll",