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.
Yes, after reading `dot-notation` I just realised it already checks whether a `MemberExpression` tries to used a reserved words as an IdentifierName. To some extent this rule and `dot-notation` have overlapping purposes, and maybe `dot-notation`'s only concern should be warning about square brackets and this rule should be about valid IdentifierNames?