Assert: Extend throws to handle errors as strings

Before this patch, assert.throws accepted only a regexp to check for string
typed thrown errors, otherwise it would replace the expected to null and
consider its value as the assertion message.

Ref gh-506
Assert: Extend throws to accept Error instances

Fixes gh-476
Closes gh-506