ART: Faster PrettyMethod().

Rewrite DexFile::PrettyMethod() to avoid copying strings.
This improves the performance, especially when requesting
the signature.

Avoid code duplication in ArtMethod::PrettyMethod() and
delegate to DexFile::PrettyMethod().

10 million invocations of ArtMethod/DexFile::PrettyMethod()
for "void Main.main(java.lang.String[] args)" with (+) or
without (-) signature, time in ms:
      host/32-bit  host/64-bit angler/32-bit angler/64-bit
AM+: 10407-> 5020  6374-> 3302  32413->13140  17558->10003
DF+:  7280-> 4259  3881-> 2828  19287-> 9331  10343-> 7375
AM-:  2682-> 1599  2025-> 1186   7206-> 4271   7447-> 4166
DF-:   861->  871   653->  640   1574-> 1430   1828-> 1712

Test: m test-art-host-gtest
Test: testrunner.py --host
Change-Id: Ifb79abe1a7f4fc6adc10a34f5d49dc6681d06699
diff --git a/test/GetMethodSignature/GetMethodSignature.java b/test/GetMethodSignature/GetMethodSignature.java
index c2ba948..d2f96bb 100644
--- a/test/GetMethodSignature/GetMethodSignature.java
+++ b/test/GetMethodSignature/GetMethodSignature.java
@@ -17,4 +17,13 @@
 class GetMethodSignature {
     Float m1(int a, double b, long c, Object d) { return null; }
     GetMethodSignature m2(boolean x, short y, char z) { return null; }
+    void m3() { }
+    void m4(int i) { }
+    void m5(int i, int j) { }
+    void m6(int i, int j, int[][] array1) { }
+    void m7(int i, int j, int[][] array1, Object o) { }
+    void m8(int i, int j, int[][] array1, Object o, Object[][] array2) { }
+    int m9() { return 0; }
+    int[][] mA() { return null; }
+    Object[][] mB() { return null; }
 }