fix: failure messages now contain the actual or expected values, instead of 'undefined'

Currently, all failure messages contain `undefined` instead of the actual or expected values.
Example
```
expect(3).toBeEvenNumber();
```
will display
```
Expected undefined to be an even number
```
This is due to a missing `return` of `angular.mock.dump` in `hlp.dp`.

This PR also adds unit tests to be able to check these failure messages.