cluster: allow multiple calls to setupMaster()

Only attributes of 'cluster.settings' will be modified after the first
call, leaving all other cluster initialization alone. Each call that
includes a 'settings' argument triggers a 'setup' event to be emitted.

Test for multiple emits of 'setup' event.
cluster: include settings object in 'setup' event

Emits on every call to cluster.setupMaster(), even if no new settings
are given. This is because calling cluster.setupMaster() without
arguments (or with an empty options object) results in the settings
being restored to their defaults.
cluster: make cluster.setupMaster() cumulative

Instead of each call resetting all values to their defaults, use the current settings (if any) as the default.

This makes the multiple-calls support compatible with cluster.fork()'s use of setupMaster() to ensure cluster.settings has been populated.
doc: Update cluster.setupMaster() example

Update previous example to node coding style and include an example of progressive configuration