Adds static properties and methods to classes

Classes can now be defined with static properties and or methods which
are available at the class level and not the instance level.

Statics can set access levels; public, private or protected; much like
non statics. Inheritance can also be demonstrated much like non statics
with child classes automatically having methods of their ancestors.
Merge branch 'master' into feat-statics

Conflicts:
	Class.js
	ClassTest.js
	Method.js
	Scope.js
Allows type hinting of static methods

Ensures that static methods can be defined like non static methods to
specify return types and a list of argument types which must be matched
when called.

This commit also fixes a previous error with static methods where
arguments were not being passed to the function.
Merge pull request #5 from peteonline/feat-statics

Adds static properties and methods to classes