Assert: throws handle string typed thrown errors

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.
Assert: throws accept objects created with Error constructor

Fixes: #476