Extend throwsException() assertion to handle testing against error objects

Does what it say on the tin really; I've extended `throwsException()` so that you can pass it an error object against which the actual exception is compared.

e.g.

```javascript
assert(function(){
    throw(new SyntaxError("expected message"));
}).throwsException(new SyntaxError("expected message"));
```

Equality is determined by comparing the error `name` and `message`. See specs for additional examples.