Ensure Test.set_status is not called with a non-string message argument.

This would cause an error in escape_html later, when it tries to call
.replace() on a non-string value.
Don't assume the exception is an object in assert_throws.
Implement a promise_rejects function to match assert_throws.
Merge pull request #99 from Ms2ger/rejection

Implement a promise_rejects function to match assert_throws.