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.
I agree entirely that this is very useful for these different scenarios. I think to be robust, we should handle more cases (at least the three mentioned [here](https://github.com/purescript/purescript-exceptions/pull/3#issuecomment-54201254)). But, it also seems like you're not losing much information if you parse the message returned. You lose the stack, but that's non-standard anyway. Maybe it's more important to support that as well?

My thoughts on this whole situation is that I'd rather not have to deal with js semantics at all and especially not exceptions. At this point, if something is thrown somewhere, it's more than likely something that could have been caught on the ps side if it were implemented there. So, until more things are implemented there, I'm fine with dealing with partially implemented solutions. I don't actually care enough what `catchException` does so long as I *can* handle it. It might not be pretty or robust, but so long as it's not a runtime error I can deal with it. And, if partially solving this at the moment is what it takes to get this merged, I'd rather that. I'm surely not the only one who has (or will) run into this issue, and I'd rather there be some fix than none at all.

Not mad, not angry, not trying to be condescending or snarky or anything like that, just wanting to explain my thoughts over the internet :).