For the "external" compiler component tests, create a simpler, composable APIs, based on current CompilerAssert framework. The goal is to abstract one simple API for interacting with compiler which would: * Enable one to easier write new tests. * Be extensible Implementation details: * Have abstract C#, F#, IL compilation and referencing behind one API. * Have composable APIs by abstracting compilation units and results. * Have simple compilation assertion framework. * Support baseline, directory-based, project-based, and inline testing.