net: allow cluster workers to listen on exclusive ports

Currently, all `listen()` calls go through the cluster master. This commit allows workers to listen on ports exclusively. Closes #3856
I originally had:

`shared = shared === undefined ? true : !!shared;`

I was asked to change it. `undefined` is a bit of a special case because the `shared` argument is not always passed, but `shared` should default to `true`. I think the simplest solution would be to explicitly pass all arguments, which is achievable since this is an internal API.