Added missing ASYNC stuff + some bug fixes

Added all stuff required to use the ASYNC features of StateMachine and
refined some other modelled functions / properties.

Also removed:
-    onbeforeevent: EventCallback;
-    onleaveevent: EventCallback;
-    onenterevent: EventCallback;
-    onafterevent: EventCallback;

and the EventCallback interface.

StateMachine dynamically adds event functions depending on the config
being used. These can't be modelled in this file. The four event
callbacks from above could wrongly suggest that these event callbacks
are present on the returned StateMachine instance.

Also noticed a bug in the StateMachine code. The StateMachine is wrongly
using the StateMachine.Result constants. The author forgot the add the
Result property to the code, so he's now returning
StateMachine.SUCCEEDED instead of StateMachine.Result.SUCCEEDED. I will
create a pull-request to fix this issue.