Support for a "classes" Property in AbstractComponent

As I was working on adding CSS hooks to a Component, I noticed there was no good place to put the class names. It feels to me that annotating the classes used in a Component should be similar to how the events are done. This adds a `classes` property to the AbstractComponent. The object is defined in the format of `className:description`

```js
classes: {
  disabled: 'class is attached when the button is in a disabled state'
}
```