LISTEN / NOTIFY support

Continuation of discussion on #28 

I've implemented direct messaging instead of GenEvent, storing the PID of the caller on `Postgrex.Connection.listen/3` and removing it on `Postgrex.Connection.unlisten/3`.

I've implemented dead-process checking by using `Process.alive?` before sending the notification, but I wonder if there is a better way to do it? I suppose we could delete the process from the HashSet when it's detected to be dead, and when the HashSet size reduces to 0 we can send an UNLISTEN query to the server?
Ah, it's a little confusing -- the [requires_notify_payload: true] tag is passed into `exclude`: https://github.com/keichan34/postgrex/commit/cd533fbec87e28ab589c30e29e8d3653129884d2#diff-a53562b003f8b881cfccc3050e85eddeR1

8.4 doesn't support notification payloads, so the tests tagged with `requires_notify_payload: true` are excluded from 8.4 tests. I wonder if there's a better way to name the tag? // @josevalim