when variable has declared type then just add the assignment value,
don't assign it because that will overrride an existing declared type
that can also have javascript stuff already defined.

added test
this type declaration
IRLocalType support, IValueReference wrapped ina RLocalType.
ti: use AnonymousValue in ImmutableValueCollection and drop inner class
ti: log exception occurred when visited a node only once
ImmutableValue: limit nested recursion depth
record type could be inside a union type, extract it from there first.
JSDocTypeParser: small refactoring

JSDocTypeParserBase -> parser.util.CharStreamUtil
parse(input, autoUnion) -> public
parser: ASTVisitor class generator
cleanup: deprecate reportUnknownType() with 4 parameters
RLocalType changes to avoid recursion
formatter: correctly check if function is a declaration
validation: drop NotExistingIdentiferValidator as now they can be validated directly
validation/tests: variable used in for-in loop must be declared
validation/API: TypeInfoValidator.runDelayedValidationsFor(references...)
forEach has an optional thisArg parameter
a little bit better doc for the forEach function