Better Function tests and bug fix that would make inherited constructors fail

* Removed support for __definegetter__ use Object.defineProperty if you
must.
* Fixed bug where calling constructors on inherited classes without a
local overload would fail.
* Made class initialization slightly faster
* Made Function tests type strong.
* Updated unit tests to test new cases.