Add support for assert.throws expecting any arbitary object

Including plain objects or instances of custom constructors that didn't inherit from Error.

Fixes #609