Route minion module failures through the event system

A couple changes:

* Added test.assertion for easy testing of this sort of thing

* A small change to the logging system to use sys.__excepthook__ instead of storing the var. (cc: @s0undt3ch )

* Routes module failures onto the minion event bus and then shot back upstream to the master. Routing through the minion should allow us to create a more pluggable system for error streaming, handle masterless, etc, etc.

* Register error handlers with reactor as callbacks 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.

* Includes job data

* Now routes error data to LocalClient, viewable via ```--summary```