Support for __construct constructor function, options keyword, final keyword, bug fixes and more.

Added __construct function support for classes, which acts just like a constructor. May be nice for those who don't want to use the class name as their constructor.
Added 'options' keyword. Accepts same options as the 2nd argument of class(). E.g. {implements = "Class", final = true} (and basically anything related to the class setup)
Added the ability to, using the alternative syntax, define member variables without using an access modifier. (these members will default to private)
Added 'final' keyword. Usage:
	- For final classes/interfaces (prevents other classes/interfaces from inheriting this class):
		class "Animal" {}
		class "Dog" extends "Animal" options {final = true} {<members>} -- using options
		class "Cat" extends "Animal" final() {<members>} -- using raw function. I agree that it doesn't look that pretty, but it works! - any better ways to do it without breaking the lua syntax?
	- For class members (prevents you from modifying their values), just wrap a final {} around them.
	- Alternative syntax:
		- For classes/interfaces: use the 2nd argument of the class() function. Takes same arguments as the 'options' keyword.
		- For class members, use the sub-tables, e.g:
			local t = class("Earth")
			t.private.static.final.tilt = 23.4
			t.register()

			local l = Earth()
			print(l.tilt) -- prints: 23.4
			l.tilt = 5 -- errors out: can't modify finals
Changed hidden variable naming from double underscore to triple underscore to avoid confusion with meta tables.
Fixed bug where classes without a constructor couldn't be initialized.
Fixed critical bug in the class members setup table, which caused the setup to miss out on any class members without modifiers.
Updated readme.