Fix behavior of instanceOf if valueOf defined

* Fixes behavior of instanceOf reported in #107. If custom valueOf
returned a primitive, Object.should type-coerced the object under test.
* Adds a test to verify correct behavior.