Merge pull request #5 from esdrubal/master

Refactored marshal printers, TextGenerator fixes
Visual studio 2010 compatibility
Identation fix.
Improve diagnostic - error/warning info back to C#.
Error handling - report compiler error when it occurs. Add extra option for ignoring errors.
Clean up the contributed diagnostic code.
Do not print diagnostic in the driver directly.
Throw NotImplementedException with unknown language generators.
Added parsing support for class function templates and added parsing of template parameters.
Extract parameter list generation into its own method.
Check for ignored events before generation.
Check for ignored variables before generation.
Added a new type printer context concept to support generation of different type names in different contexts.
Added an helper function to get a template parameter list.
Use the new template parameter helper for type printing std::vector.
Added preliminary support for generation of function templates (disabled by default for now).
Serializes generated file hashes so files are only overwrite on change.
Fixed CppTypePrinter wrong typedef names.
Add support to ignore value class fields
Removed MarshalContext.SupportAfter