Add support for LISTEN/NOTIFY.

Using db.Query("LISTEN relname"), returning an
infinite Rows object. This is not optimal as a
Rows.Next() call cannot be interrupted, but should
fit the API well.
Make LISTEN/NOTIFY use channels.

This is now a completely separate API, not using database.sql. There
is code duplication from conn.go, but this is a first PoC.

Supports reconnection and notifications on reconnect.
Fix refs to RelName and Extra fields
Add panic() at end of reconnect().

Avoids linting warning in Travis.
Let notification tests use PGDATABASE.

Deadlock in tests when the NOTIFY connection used openTestConn()
and the LISTEN connection didn't.
Clean up unused channels map entry.
Add test for Unlisten.
Improve error behaviour.

* Don't panic in Unlisten.
* panic() on unknown error in listening goroutine.
* Quote relname.
* Reconnect if re-LISTEN fails. (This will not use exponential back-off,
  but is also unlikely to happen.)