Implement the DDMS heap walking (for native and managed heaps).

This gets you the DDMS histograms of what's on your heaps.

Change-Id: I7133d044030b10a787277faf3a77e20c565e69c5
diff --git a/src/space.cc b/src/space.cc
index 593132a..559e943 100644
--- a/src/space.cc
+++ b/src/space.cc
@@ -222,13 +222,18 @@
   mspace_walk_free_pages(mspace_, DontNeed, &num_bytes_released);
 }
 
+void Space::Walk(void(*callback)(const void*, size_t, const void*, size_t, void*), void* arg) {
+  if (mspace_ != NULL) {
+    mspace_walk_heap(mspace_, callback, arg);
+  }
+}
+
 size_t Space::GetMaxAllowedFootprint() {
   DCHECK(mspace_ != NULL);
   return mspace_max_allowed_footprint(mspace_);
 }
 
-void Space::SetMaxAllowedFootprint(size_t limit)
-{
+void Space::SetMaxAllowedFootprint(size_t limit) {
   DCHECK(mspace_ != NULL);
 
   // Compare against the actual footprint, rather than the