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'd really prefer this be written in terms of ES3/ES5 compat, rather than specific browser/version compat. ES3 uses the Identifier production for property names, while ES5 uses the IdentifierName production. Use this rule when writing ES3-conformant code. Ignore it when you can guarantee an ES5 environment.