Client support for ZeroMQ transport

Also some general fixes to the initial ZMQ event handling code and a
simplification of the Service API (no need to pass the address to the
service - it isn't really used).
Support for cleaning up clients after loop death

This should probably run at times other than loop death - currently it
could create somewhat of a memory leak if a loop lives for a long time
and frequently spawns new client connections.