!cluster: fix suicide and exit handling

Round-robin refactor changed the definition of suicide, and changed the
relationship between suicide state, the disconnect event, and when exit
should occur.

Workers shouldn't normally exit on disconnect, it doesn't give them time
to do a graceful finish of open client connections. But on unexpected
disconnect they should exit so the workes aren't left around after the
master.
!FIXME cluster: don't error because of a disconnect

Its not an error for the worker to disconnect itself. This fix isn't
complete, its possible that some of the callbacks will need to be
called, or incomplete operations in the worker will never complete.
!fixme _test-cluster.sh