CompilerTest

For testing compiler internals directly.
Each source code string in "sources" will be compiled, and
the check function will be called with the source code and the
resulting CompilationUnit. The check implementation should
test for what it wants to test and fail (via assert or other
exception) if it is not happy.