Improve JniAbort (and JNI tests).

This has been on my to-do list for a while, but it actually bit people
in the ass yesterday. This change enables us to write a lot more (and
better) tests, but for now I've just improved the tests that already
existed.

Change-Id: I04a18656de60b47e5a6b5777204c144209d1448e
diff --git a/src/thread.cc b/src/thread.cc
index a87e550..60f0199 100644
--- a/src/thread.cc
+++ b/src/thread.cc
@@ -1062,8 +1062,7 @@
   }
 
   if (result == NULL) {
-    LOG(ERROR) << "JNI ERROR (app bug): use of deleted " << kind << ": " << obj;
-    JniAbort(NULL);
+    JniAbortF(NULL, "use of deleted %s %p", ToStr<IndirectRefKind>(kind).c_str(), obj);
   } else {
     if (result != kInvalidIndirectRefObject) {
       Runtime::Current()->GetHeap()->VerifyObject(result);