core: improve message for assertion errors (throw assertion)

```coffeescript
# create CustomError
fun = () -> throw new CustomError('test', true)
fun.should.not.Throw()
```

the above ends up showing an error message which is not useful at all (due to the Error instance being passed all the way to objDisplay) e.g.

`AssertionError: expected [Function] to not throw an error but { Object (expected, found, ...) } was thrown`

This PR, changes the message to e.g.

`AssertionError: expected [Function] to not throw an error but 'CustomError: Expected x but found y' was thrown`