So with the restarters baked into the KM logic, the hb channel has sort of gotten replaced.  And the MKM multiplexes these calls so the handlers can monitor for these restart events.  The only problem I have with this is that it means the MKM has to run in the same process as the handlers, greatly restricting how the architecture can evolve.  My original plan was to completely remove all knowledge of the restarts from the handlers.  In order to notify clients of the restart I was going to have the kernel send a "started" message each time it starts or restarts.  That way we can make sure that *all* frontends not just the one running co-process with the KM gets notified of the restart.  It will require frontends to be a bit intelligent about detecting when a "start" event is a first time start and when it is a restart.  The only problem with this approach is that the failed restart logic become more difficult to handle.  This make take some additional work that is beyond this PR...