Adding pgbouncer transaction patch.

Originally from http://treehou.se/~omar/postgresql-jdbc-8.4-701-pgbouncer_txn.patch
Expose PID of the backend process serving a paricular JDBC connection through
a new method in PGConnection interface, analogous to PQbackendPID in libpq C API.
Allow driver to set read-only based on a connection parameter.
SSL client certificate via Keystore from a Resource file provided by Brendan Jurd

It seems that the most common way to deal with this situation is to
specify the keystore file and the password via system properties
(javax.net.ssl.keyStore et. al.), but that wasn't suitable in my case.
 I needed to be able to load the keystore from a Resource file
embedded in the compiled JAR.

The class I came up with is attached.  It builds on the WrappedFactory
provided in jdbc-postgres.  All the implementer needs to do is
override the two abstract methods to provide an InputStream of the key
store, and the password to access it.  The InputStream could be a
FileInputStream, or an InputStream returned by getResource(), or
whatever.

This class uses the same keystore for KeyManager (selecting the
key/cert to send as the client) and for TrustManager (verifying the
server's certificate against trusted CAs).  It could easily be
extended to allow for two separate keystores by adding another couple
of methods.
Merge pull request #27 from davecramer/master

DbKeyStoreFactory
Merge pull request #25 from rkrzewski/backend_pid

Expose PID of the backend process serving a paricular JDBC connection
Merge pull request #26 from stevenschlansker/read-only

Allow driver to set read-only based on a connection parameter.
Japanese translation spelling corrected provided by Tomonari Katsumata
Merge pull request #28 from davecramer/master

Japanese Translation spelling fixed by Tomonari Katsumata
changed package to org.postgresql.ssl
Merge pull request #29 from davecramer/master

DbKeyStoreSocketFactory was in wrong package
fix cancelTimer bug reported by Andri Redko.
now cancel timer when connection is closed
make sure timer is cancelled if there is an exception in execute
Merge pull request #30 from davecramer/master

Fix cancel timer bug reported by Andriy Redko
Bug reference 7766 reported by Zelaine Fong
if an insert or update or delete statement affects more than 2^32 rows
we now return Statement.SUCCESS_NO_INFO
Merge pull request #31 from davecramer/master

Bug reference 7766 reported by Zelaine Fong
Fixed my patch to deal with update counts over 2^32
Check to see if the update count is greater than Integer.MAX_VALUE before
setting the update_count to Statement.SUCCESS_NO_INFO
NumberFormatException will still be thrown if there is a problem
parsing it.
Merge pull request #32 from davecramer/master

Allow ParseException to be thrown
fixed mistake where update_count not updated properly
Merge pull request #33 from davecramer/master

fix bug where update_count not updated correctly
make sure driver doesn't parse anything if the url isn't for us, also catch other possible errors, reported by Nathaniel Waisbrot