Change dex cache to be java object instead of array, add pointer to dex file in dex cache.

Generic clean up to facilitate having GDB macros for Pretty* helper functions.

Improved cleanliness of DexCache since having it as an object array was not the best solution.

Fixed a bug in InOrderWalk caused by ResolveType sometimes allocating classes.

Rename C++ Method to AbstractMethod and add two new classes Constructor, Method which both inherit from AbstractMethod.

Rename done to have the C++ code be closer to the java code.

Change-Id: I4995b4c5e47a3822192b08afa24a639d3b1f4da9
diff --git a/src/utils.cc b/src/utils.cc
index bff1f0c..534b28e 100644
--- a/src/utils.cc
+++ b/src/utils.cc
@@ -317,7 +317,7 @@
   return PrettyDescriptor(return_type);
 }
 
-std::string PrettyMethod(const Method* m, bool with_signature) {
+std::string PrettyMethod(const AbstractMethod* m, bool with_signature) {
   if (m == NULL) {
     return "null";
   }
@@ -573,7 +573,7 @@
   return descriptor;
 }
 
-std::string JniShortName(const Method* m) {
+std::string JniShortName(const AbstractMethod* m) {
   MethodHelper mh(m);
   std::string class_name(mh.GetDeclaringClassDescriptor());
   // Remove the leading 'L' and trailing ';'...
@@ -592,7 +592,7 @@
   return short_name;
 }
 
-std::string JniLongName(const Method* m) {
+std::string JniLongName(const AbstractMethod* m) {
   std::string long_name;
   long_name += JniShortName(m);
   long_name += "__";