Fix for for nested withConfig (issue #447). Includes tests.

When nesting calls to withConfig, deep copying config causes an unbounded loop/stack exception as config.configuration references config itself. Passing config through _.omit to filter out .configuration prior to deep copying resolves this issue.