cluster: disconnect should not be synchronous

Callbacks in node are usually asynchronous, and should never be
sometimes synchronous, and sometimes asynchronous.

Test is backported from 6f40abe

and enhanced to assert the non-synchronicity of the callback.

This is a reopen of https://github.com/joyent/node/pull/8043, but targetted against v0.10 branch, as it should have been.