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.
ES3 didn't have the concept of `IdentifierName`. `Identifier` is defined as `IdentifierName` but not `ReservedWord`. ES3 used `Identifier` for property names, so `ReservedWord`s *are not* allowed as property names. ES5 uses `IdentifierName`, so `ReservedWord`s *are* allowed as property names.