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/Ralloc.h b/src/compiler/codegen/Ralloc.h
index 12e5f13..b1e14ec 100644
--- a/src/compiler/codegen/Ralloc.h
+++ b/src/compiler/codegen/Ralloc.h
@@ -97,6 +97,8 @@
 
 extern void oatMarkTemp(CompilationUnit* cUnit, int reg);
 
+extern void oatUnmarkTemp(CompilationUnit* cUnit, int reg);
+
 extern void oatMarkDirty(CompilationUnit* cUnit, RegLocation loc);
 
 extern void oatMarkPair(CompilationUnit* cUnit, int lowReg,