Initialize runtime constituents on runtime construction.

Change-Id: I63fff272b64bd29a7f828dac48aed91833af1eee
diff --git a/src/class_linker.h b/src/class_linker.h
index 3796dc2..00271a5 100644
--- a/src/class_linker.h
+++ b/src/class_linker.h
@@ -15,11 +15,10 @@
 
 class ClassLinker {
  public:
-  ClassLinker() {}
-  ~ClassLinker() {}
-
   // Initializes the class linker.
-  void Init();
+  static ClassLinker* Create();
+
+  ~ClassLinker() {}
 
   // Finds a class by its descriptor name.
   Class* FindClass(const char* descriptor,
@@ -49,6 +48,10 @@
   void AppendToClassPath(DexFile* dex_file);
 
  private:
+  ClassLinker() {}
+
+  void Init();
+
   Class* CreatePrimitiveClass(JType type, const char* descriptor);
 
   void LoadInterfaces(const RawDexFile::ClassDef& class_def, Class *klass);