Extend "globals" configuration deeply

Allow for extension of the "globals" configuration option. Users may
override any or all "globals" values by explicitly specifying them in
the extending configuration.

The necessity of this change is based on my interpretation of the "extends" option functionality, so it's a little subjective. I believe that this is in line with the spirit of the feature, which is to limit duplication in configuration logic.

My use case is a project that maintains unit tests for client-side code and server-side code. Both environments use [Mocha](https://github.com/visionmedia/mocha), and the client uses AMD. I would like to share and extend the "globals" configuration like this:

`/.jshintrc`
```json
{
  "undef": true
}
```

`./test/.jshintrc`
```json
{
  "extends": "../.jshintrc",
  "globals": {
    "suite": true,
    "test": true,
    "setup": true,
    "teardown": true,
    "assert": true
   }
}
```

`./test/client/.jshintrc`
```json
{
  "extends": "../.jshintrc",
  "browser": true,
  "globals": {
    "define": true
  }
}
```

`./test/server/.jshintrc`
```json
{
  "extends": "../.jshintrc",
  "node": true
}
```