Adds support for Object states (Fixes #4)

Adds a naive `isEqual` implementation and updates spec to support `Object` states.
Not great?

```
> var a = { foo: 'bar' }; a == Object(a)
< true
> var a = [1,2,3]; a == Object(a)
< true
> var a = function(){}; a == Object(a)
```