Add static `modifyAttrs()` method to BaseCore and Base

This method allows the `ATTRS` of an already defined BaseCore or Base subclass to be safely modified. It will clear the cached class hierarchy data so that the next instance of the class which is created will cause the aggregated `ATTRS` to be re-computed.

A reference for this method is also added to every class created via `Y.Base.create()`. This makes it more convenient to use and more analogous to:

```javascript
// Before:
MyClass.ATTRS.foo.value = 'foo';

// Now:
MyClass.modifyAttrs({
    foo: {value: 'foo'}
});
```

**Note:** The first commit in this pull request resolves some lint issues and duplicate keys in BaseCore's and Base's unit tests.

----

### Todos

- [ ] Update HISTORY.md (I left this off to minimize conflicts.)