cluster: overridable options

Allow setup to be invoked any number of times to override options without screwing up first-time initializers, as well as adding the ability to invoke fork with custom options. This will separate out "defaults" from "local" overrides, making the module more flexible.

#6264