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.
Alright, so @michaelficarra what say you?

Just the one `{}.toString.call(e).slice(8, -1) === 'Error'` check, or also an instance check so we catch user/lib defined `Error`'s as well?