Add a Function.constructor check to throws.

Allows you to also write:

```
t.throws(fn, TypeError);
```


@wilmoore that's the semantics of `require('assert')` in node core on purpose.

Having different semantics from `require('assert')` is confusing and not worth it, even if they are "technically" better.