Various GCC 3.6 and clang build fixes.

Remove #error in common_test.h that fires with clang build and replace with
runtime error.
Fix bit rot caused by not compiling with Wthread-safety.
Fix clang build issues in compiler relating to missing header file definitions
in object files.
Other minor build and tidying issues.

Change-Id: Ife829ab0664581936155be524de46e6181c750b0
diff --git a/src/verifier/reg_type_cache.cc b/src/verifier/reg_type_cache.cc
index aac7e37..e914d1e 100644
--- a/src/verifier/reg_type_cache.cc
+++ b/src/verifier/reg_type_cache.cc
@@ -266,18 +266,18 @@
 }
 
 void RegTypeCache::CreatePrimitiveTypes() {
-  CreatePrimitiveTypeInstance<UndefinedType>(NULL, "");
-  CreatePrimitiveTypeInstance<ConflictType>(NULL, "");
-  CreatePrimitiveTypeInstance<BooleanType>(NULL, "Z");
-  CreatePrimitiveTypeInstance<ByteType>(NULL, "B");
-  CreatePrimitiveTypeInstance<ShortType>(NULL, "S");
-  CreatePrimitiveTypeInstance<CharType>(NULL, "C");
-  CreatePrimitiveTypeInstance<IntegerType>(NULL, "I");
-  CreatePrimitiveTypeInstance<LongLoType>(NULL, "J");
-  CreatePrimitiveTypeInstance<LongHiType>(NULL, "J");
-  CreatePrimitiveTypeInstance<FloatType>(NULL, "F");
-  CreatePrimitiveTypeInstance<DoubleLoType>(NULL, "D");
-  CreatePrimitiveTypeInstance<DoubleHiType>(NULL, "D");
+  CreatePrimitiveTypeInstance<UndefinedType>("");
+  CreatePrimitiveTypeInstance<ConflictType>("");
+  CreatePrimitiveTypeInstance<BooleanType>("Z");
+  CreatePrimitiveTypeInstance<ByteType>("B");
+  CreatePrimitiveTypeInstance<ShortType>("S");
+  CreatePrimitiveTypeInstance<CharType>("C");
+  CreatePrimitiveTypeInstance<IntegerType>("I");
+  CreatePrimitiveTypeInstance<LongLoType>("J");
+  CreatePrimitiveTypeInstance<LongHiType>("J");
+  CreatePrimitiveTypeInstance<FloatType>("F");
+  CreatePrimitiveTypeInstance<DoubleLoType>("D");
+  CreatePrimitiveTypeInstance<DoubleHiType>("D");
 }
 
 const RegType& RegTypeCache::FromUnresolvedMerge(const RegType& left, const RegType& right) {