Use config-extend instead of node.extend

node.extend merges arrays, which is virtually never what we want for merging
config options:

```coffeescript defaults:
 key: [ "1", "2", "3" ] override:
 key: [ "a", "b" ]

extend(true, {}, defaults, override) #=>
```

What we want is recursive merging but arrays are overwritten, not merged:

```coffeescript defaults:
 key: [ "1", "2", "3" ] override:
 key: [ "a", "b" ]

extend(true, {}, defaults, override) #=>
```

The first option is optional, just like every other extend library. However,
in this library, it defaults to true if omitted. I'm leaving it in for
clarity. (and in case we have to change extend libs again)