Avoid instantiating passed in errorType in toThrowError

since the passed in errorType could be a custom user function,
we instead detect if its an instanceof Error by using a Surrogate
(inspired by Backbone's use of surrogacy)
Merge pull request #378 from sheelc/toThrowError_modifications

Avoid instantiating passed in errorType in toThrowError