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
in above, instead of `h.shared`, I would suggest:

```
var shared = 'shared' in h ? !!h.shared : true;
```

Or else change the name "shared" to "private", and by negating its sense, you don't have to treat non-existence as true when it is normally false, you can simply do: `var shared = !!h.private`

I find definitions of truth that differ from what javascript's is (as exemplified by `if(x) console.log('x is truthy')`) to be problematic.