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/oat_file.h b/src/oat_file.h
index c0bf21f..80a2920 100644
--- a/src/oat_file.h
+++ b/src/oat_file.h
@@ -32,7 +32,7 @@
 class ElfFile;
 class MemMap;
 class OatMethodOffsets;
-struct OatHeader;
+class OatHeader;
 
 class OatFile {
  public:
@@ -197,7 +197,8 @@
   };
 
   const OatDexFile* GetOatDexFile(const std::string& dex_file_location,
-                                  bool warn_if_not_found = true) const;
+                                  bool exception_if_not_found = true) const
+      SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
   std::vector<const OatDexFile*> GetOatDexFiles() const;
 
   size_t Size() const {