rethrow exceptions during _flush, so we can associate errors with messages

Without exceptions from the underlying ZMQ code, we can't tell when a router socket failed to deliver a particular message.