Disallow reserved words as keys (fixes #1144)

This PR adds a rule for disallowing reserved words being used as keys, both on object initialisation and assignment:

```js
var superman = {
    class: 'Superhero',
    private: 'Clark Kent'
};

superman['default'] = 'Is it a bird? ...';
```

I suggest it is off by default, as many projects use reserved words as keys. However IE7 and IE8 do not allow this.
I think this is an open question. It's one thing to disallow in object literals, but disallowing in bracket notation means you also can't use third-party objects that might use reserved words as keys. 

I think what we should do is say that dot notation with reserved words aren't allowed (`foo.default`), but we won't check square brackets for strings.