Make sure different syntax to create an object have same results.

  This commit corrects the missing implicit constructor call when
using the operator new to create a new object, so that now:
	type_t a = new type_t;
and
	type_t a = {};
are essentially the same.
Correct crash when evaluating a function prototype without arguments.

  Prototypes are required when calling a function before definition,
usually due to cyclic dependency. This commit corrects a missing
check for a null argument list of a prototype of a function without
arguments.
Handle explicit reference to this and explicit super constructor call

  The language *currently* does not use explicit rules of superclass
constructors called before the current constructor. Instead, it allows
the programmer to choose if overriding the initialization or letting
the superclass override.