added 'isDenotable' flag to TypeConstructor
added UNKNOWN_EXPECTED_TYPE, NumberValueTypeConstructor

analyze function arguments with UNKNOWN_EXPECTED_TYPE
(for several times in different traces yet)

for number literals create type with NumberValueTypeConstructor with exact value,
transform it to the corresponding type when resolve arguments (expected type is known)

doesn't work properly for if, elvis operator, etc. (throws exceptions)
++changed comparison to EXPECTED_TYPE
to 'noExpectedType' invocation
process number value types properly in constraint system

the case when type parameter has number value types (constants) as lower bounds
should be handled specially, because upper bound for primitive number types is 'Number',
but by default we want Int (or Long)
added diagnostic message tests to ensure that number value types don't appear in error messages
added DoubleValueTypeConstructor

no need to store exact value in IntegerValueTypeConstructor, it was removed
changed way to compute common supertype for number types

(using only supertypes, not exact value)
added todo comment