Adding OptionCompilerPrefrence, and CompilerConfig merging.

* Cleaning up default options to provide default compilers dependent on operating system.
* Cleaning up bugs in OptionImposter to make the above possible.
* Adding platform config objects for target and source.
* Rearranging compiler functions on language objects.
* Adding compiler config merging.