Add documentation to ServiceDefinition and TypeDefinitions.
Changes BaseCodeGenerator to be significantly more generic.