cluster: allow multiple calls to setupMaster()

I'm sure there was a long discussion of why this shouldn't be done, but I couldn't find it, and the code seems perfectly amenable to it.

Only `cluster.settings` will be modified after the first call, with the other initialization only being performed once. Each call that includes a `settings` argument triggers a `setup` event to be emitted.

This is the behaviour change proposed in #7670.
Style: no space after function keyword.