Fix: Always make globals an object

Fixes #1049.

Correct the recent configuration hierarchy change which changed this.globals' initialization to default to `[]` when options.globals is falsy, rather than `{}`. This caused later globals logic to fail,  most importantly [line 247](https://github.com/eslint/eslint/blob/v0.7.1/lib/config.js#L247) where that `[]` is merged into an object, overwriting the user config globals.

Also fixed tests that failed as a result of the correction and added a new regression test for the user config globals.