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?
Oh, you can use ExUnit filters for this. In your test_helper.exs file you will do something like:

```elixir
exclude = if System.get_env("PGVERSION") == "8.4" do
  [requires_notify_payload: true]
else
  []
end

ExUnit.configure exclude: exclude
```

And now, before the test, you just do:

```elixir
@tag requires_notify_payload: true
```