CodeGenerator added. Lots of refactoring in TypeProvider macro implementation.

* In order to share code between CodeGenerator and TypeMacro, lots of refactoring had been made.
* MacroHelper devided to separate slices of cake.
* CodeGenerator added, but indentation is not good.
* No tests added.
* There is no support for running code generator from console.