Added fake events to thoth

Thoth now exposes addEventListener and removeEventListener that can be
used by on and off to listen to arbitrary fake events. This fake events
will be invoked by calling triggerEvent on thoth.