Test for notification equality manually

`NSNotification` uses pointer equality when using `isEqual:`. This means that
passing an instance of `NSNotification` to the `notify` matcher is essentially
pointless, as it will only pass if you're storing the instance somewhere. This
change makes it so that the matcher checks for
`name`, `object`, and `userInfo` equality, instead of pointer equality. This
makes the matcher much more useful.