Fixes bug with instanceof for host objects.

When `o instanceof c` is called, where `c` is a host object, the
`__hasInstance__` method inhereted from Function.prototype is used. The
Function doesn't handle other receivers correctly. For example, `((new
TypeError()) instanceof TypeError` returns false.

This commit fixes this error by implementing `__hasInstance__` to spec,
modifying it from `FunctionObject.prototype.__hasInstance__`.