Di Runtime Compiler Definition

Seems that the current `CompilerDefinition` class has not been maintained with changes that have been introduced in the `RuntimeDefinition`. This results in different class definitions generated by the `CompilerDefinition` than those generated by the `RuntimeDefinition`. To resolve this I have created `RuntimeCompilerDefinition` which extends `RuntimeDefinition` and adds the functionality of `CompilerDefinition`. It has been designed to be used as a drop in replacement for the `CompilerDefinition`, and as such should be usable any where that was previously been used.