index: Improve HTMLElement duck typing

This patch prevents passing a non-element to `ClassList`.

--

I just spent far too long trying to debug something like this:

```js
var someView = new SomeView;
classes(someView).add('foobar') // should be classes(someView.el)...
```

we would just fail silently add add:

```js
someView.className = 'foobar'
```

--

/cc @yields (again)