Static variables, different internal workings, bug fixes.

Changed how classes work internally. Every class now has a global class 'instance' which will be duplicated to create every new instance. You can however use this global instance directly and make it return itself in the constructor, to create a singleton class. This global instance is also where the values of static class members are stored/shared between all instances of a class.
Added static variable support.
	- Normal syntax:
		class "name" { public { static { variable = 123 } } }
	- Alternative syntax:
		newClass.public.static.variable = 123
Added class:duplicate()
Added class:is_instance() - returns true on instances and false on the global class instance
Added class:get_name()
Added class:member_getmembertype()  - returns _static_ or _instance_
Added class:get_class() - returns the global class (which serves as a base for all instances, which are a duplicate of this class- and static variable values are stored in this class, too)
Fixed constructor calls not traversing to superclasses.
Fixed mistake in the protected member logic which prevented members from accessing their own protected variables.