Adds autoloading of classes and scripts

Classes can now 'require' one or many scripts and/or classes which will
be included when the class is declared and can be guaranteed to load
before any class method (including the constructor) is run.

Mapping can also be set up for autoloading classes and files. That is,
the system can be told to find class x.y.z at the path a/b/c.js or any
other pattern.

Classes can also be registered as loaded. This is so that they can be
compiled into production files and there will be no further attempt to
load them.
Changes default behaviour of toString method

Now when a class which does not override the toString method is
converted to a string, it will be rendered as '[object Name.Of.Class]'.
Moves instanceOf function to object prototype

This is so that all non-null and non-undefined objects in the system can
have instanceOf called against them meaning we do not have to check
for the method before we can validate a certain class or interface.

Specifically, we can call instanceOf on strings, numbers, objects,
arrays and booleans without error. All except objects are guaranteed to
return false as they cannot be instances of Class, user defined classes
or interfaces.
Changes default class member access to private

Unless a specific access level is specified at property or method
declaration, they will now be declared private instead of public.

This is in order to encourage encapsulation which is one of the main
aims of this project.
Reformats fatal objects

Fatals now show up in the console as errors of type Fatal with full
stack trace and well formatted messages.
Removes accidental globals
Merge pull request #2 from peteonline/feat-auto-include

Adds autoloading of classes and scripts
Merge branch 'master' into feat-type-safety

Conflicts:
	Class.js
	ClassTest.js
	Test/Test.html