Test pattern matching for argument types.
Remove dead code.
Distribute argument transformers to their own files.
Use Moq
Make some types public for unit testing
Cull dead code from CSharpGenerator
Unit tests for FunctionAssembler
Struct generation unit tests