Register error handlers with reactor as callbacks

This is kind of a wild idea, but here goes.

I modified the reactor system to accept raw functions that act as
callbacks.

This means that we can get rid of loops that check for events and
instead just write functions that can register *theselves* with the
reactor and then have events streamed back to them. This has a lot of
interesting applications, such as facilitating a GUI that, instead of
using an REST API, could simply have a lightweight event-driven API that
registers with the reactor and has updates streamed back to it.

This is a proof of concept of this idea which illustrates minion error
messages being tossed across the event bus and the master registering an
error handler with the reactor to process them.