Add switch and comparison tests. Fix ralloc bug

We normally have 5 registers in our temp pool, but up to 6 may be
needed for long 3-operand operations.  Added a workaround to temporarily
add lr to the temp pool in that specific case.

Moved the bulk of the compiler_test code out of common_test.h into
compiler_test.h.  Added switch and compare unit tests.

Change-Id: Ib449c49861acb5aaef716e8538e5818ba74522cb
diff --git a/src/compiler/codegen/RallocUtil.cc b/src/compiler/codegen/RallocUtil.cc
index 30b5280..3b222f6 100644
--- a/src/compiler/codegen/RallocUtil.cc
+++ b/src/compiler/codegen/RallocUtil.cc
@@ -783,6 +783,12 @@
     info->isTemp = true;
 }
 
+extern void oatUnmarkTemp(CompilationUnit* cUnit, int reg)
+{
+    RegisterInfo* info = getRegInfo(cUnit, reg);
+    info->isTemp = false;
+}
+
 extern void oatMarkPair(CompilationUnit* cUnit, int lowReg, int highReg)
 {
     RegisterInfo* infoLo = getRegInfo(cUnit, lowReg);