Treat all PG::ConnectionBad exceptions as disconnect errors in the postgres adapter

Newer versions of ruby-pg have a PG::ConnectionBad exception class
that is used if the connection is bad.  That's probably more
reliable than parsing exception messages, so use it by default in
the postgres adapter.

Still default to checking exception messages for PGError exceptions.
Also, assume all PQconsumeInput() error messages imply disconnection.