Enhanced unit tests for code generators to compile the generated code, l...

...oad, instantiate, execute, and re-generate from compiled result.

Fixed a few issues discovered while running the enhanced tests.
Running tests without building sounds like a weird scenario. If the paths are different when built from command line or VS, well that is a problem with the build/proj files. They should be the same. And yeah, the path is specific to our build, but the tests are supposed to verify the output of the build. Even with Roslyn, my guess is that it is still preferable to add references to built dlls and not re-build them with the tests, because at that point we are not testing the true build targets.