assert: Add support for throws expecting any arbitary object

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