Fix ClassLinker::InitializeStaticStorageFromCode

Previously the code computed the storage and returned the pointer to
it, but it forgot to set the value into the table for future
callers. Added a test to confirm the correct behavior.

Change-Id: I48717a3d4926f5ddc0ad09d065f75d031eb5b8fb
diff --git a/src/object.h b/src/object.h
index a0f3e38..ca84dac 100644
--- a/src/object.h
+++ b/src/object.h
@@ -1170,13 +1170,13 @@
 }
 
 // Type for the InitializedStaticStorage table. Currently the Class
-// provides the static storage. However, this might change to improve
-// image sharing, so we use this type to avoid assumptions on the
-// current storage.
-class StaticStorageBase {};
+// provides the static storage. However, this might change to an Array
+// to improve image sharing, so we use this type to avoid assumptions
+// on the current storage.
+class StaticStorageBase : public Object {};
 
 // C++ mirror of java.lang.Class
-class Class : public Object, public StaticStorageBase {
+class Class : public StaticStorageBase {
  public:
 
   // Class Status