assertThrow should rise an error if expected and thrown errors don't match

Having the following code:

```javascript
function CustomError1() {}
function CustomError2() {}
g.assertThrow(CustomError1, function(){
  throw new CustomError2();
});
```

Gerbil should rise an error.

This commit solves the problem, by failing if the thrown exception is not an instance of the expected error.