Added KnownTypesHarvester

Refactoring towards a richer semantic model to allow more reasoning
about the declared types in the model (initially, to see if they are
value types or not).
Added documentation for CodeDomCompiler
Pass known types to code gen
Use known types for generating GetHashCode