cluster: disconnect callback should always occur

Fixes issue in 0.11 where callback doesn't occur if worker count is
currently zero.  In 0.10 callback occurs after worker count is zero, and
occurs in next tick if worker count is currently zero.
cluster: a normal disconnect should not error

Its not an error for the worker to disconnect itself, but v0.11 sends
more messages over the ipc channel, so disconnect was causing errors to
be thrown in situations that v0.10 would not error. Its possible that
messages related to cluster will never get responses now, but since a
disconnected worker is about to exit this should not matter.
cluster: fix api breakage related to suicide

Fix inadvertent v0.11 changes to the definition of suicide, particularly
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.
cluster: test should assert v0.10 api consistency

This test as-written was invalid, it fails against the v0.10 cluster
API, and the commit that introduced it didn't document any intentional
change to the cluster API.
cluster: do not synchronously emit 'setup' event

This is a problem present in both v0.10, and v0.11, where the 'setup'
event is synchronously emitted by `cluster.setupMaster()`, a mostly
harmless anti-pattern.