Adds events to class definitions

Classes can now declare a list of events which they are able to trigger.
Client objects can bind a nominated method of their own to any of these
events to be called when the event is triggered. Data can be passed
from the triggering class to the target method.

Nominated methods must be accessible to the class which owns the event,
according to existing rules of method access. Classes related by
inheritance can therefore call methods which are protected.

Client classes can also unbind themselves from previously bound events.
Updates format of fatals to match master
Merge branch 'master' into feat-events

Conflicts:
	Class.js
	ClassTest.js
	Scope.js
	Test/Test.html
Ensures events can be type hinted

If an event lists argument types, any typed method being bound to this
event must have a matching signature, ignoring the return type. A fatal
error is thrown at the point of binding if not.

If either the event or the method are not type hinted, the bind can
take place without error and it is then up to the programmer to ensure
that no type errors occur.
Merge pull request #3 from peteonline/feat-events

Adds events to class definitions