an `error` hook is now thrown when an event in lua
throws an error (errors from go side should not happen)
it includes the event name, handler, and error message
a hooks function has also been added. it returns a table
of handlers for a specific event.