ZMQ Service Durability

`DieselZMQService` is currently too fragile.

If there is an exception in the `_receive_incoming_messages` loop, a running instance of the service will hang in an undead zombie-like state where it continues to run and accept connections but doesn't actually process the incoming messages.

The attached changes clean up diesel's support for child loops with `keep_alive` enabled and turns that flag on for the `_receive_incoming_messages` loop.

Tests are included for the fleshed out child loop `keep_alive` support and the particular case of the `_receive_incoming_messages` loop dying.