[Microsoft.Build.Tasks] Rework CodeTaskFactory to use CodeDom and implement parameter support

Removed the old string-based code and use CodeDom APIs for everything.
Implemented parameter support by adding the necessary properties to the generated class.
Fixed bug where the task references weren't passed to the compiler.
This should now work with VB code as well (assuming the compiler is installed).