Use `toString` check rather than `instanceof` check.

Re: discussion in #1 Should fix wonky js context things.

This seems to provide the semantics of what the type specifies, since `throw`ing if we didn't immediately get an `Error` actually introduces back an `Exception` effect. which `catchException` is supposed to remove.
```js
{}.toString.call(e) === '[object Error]'
```

is more idiomatic.