ART: Fix ImageSpace::Init

Refactor ImageSpace::Init. Fix a case of using nullptr for error_msg
where it was unsafe. Instead fix the remaining case of verbose map
dumping.

Also fixes the stack frame size issue on x86-64.

Change-Id: I7d3ba05100592b5a44a29b34349edd8a44b4a72f
diff --git a/runtime/mem_map.cc b/runtime/mem_map.cc
index 771f8ed..1d501f7 100644
--- a/runtime/mem_map.cc
+++ b/runtime/mem_map.cc
@@ -339,7 +339,9 @@
 
   if (actual == MAP_FAILED) {
     if (error_msg != nullptr) {
-      PrintFileToLog("/proc/self/maps", LogSeverity::WARNING);
+      if (kIsDebugBuild || VLOG_IS_ON(oat)) {
+        PrintFileToLog("/proc/self/maps", LogSeverity::WARNING);
+      }
 
       *error_msg = StringPrintf("Failed anonymous mmap(%p, %zd, 0x%x, 0x%x, %d, 0): %s. "
                                     "See process maps in the log.",