different implementation of previous commit:

"this" should never be a reference but always be a copy so that changes
to the instance are not shown up on the this so also on the other
instances.


now a realy copy is only created when a new Xxx() is done. Then the
ThisValue of the function is copied instead of referenced, any thing
else it is still referenced.
optional properties/record type param fix
null check
if array/collection type then pure name based variables (none index)
should show with the name in front of it.
don't show a very large text, that will only hang eclipse completely
union types should test if its targets are really not assignable if it
is not an exact match
parser: support keywords as property names