Fix for Bug: Indefinite block in DefaultConnectionStrategy.getInternalConnection()

Thanks: Chris Ng
A few cleanups + bug fixes
WIP
Issue where bonecp is losing connections on database failure
Added notification for PoolwatchThread when a connection is killed
Notify pool watcher that new connections need to be made available after they are closed due to expiration
Merge pull request #10 from avalliani/master

BoneCP leaking connections on database failure
Fixed an issue with ConnetionHandle.close where the recreation of ConnectionHandle and a call to .setAutoCommit was throwing an exception and the connection proceeding the code was not being released.
Handle a case where partition is not set on recreate resulting in errors
Prevent org.postgresql.util.PSQLException: Cannot change transaction read-only property in the middle of a transaction

when release connection to pool,bonecp will call setReadonly on connection,if there is a transaction and is not ended,postgresql(maybe other database) will throw exception.
org.postgresql.util.PSQLException: Cannot change transaction read-only property in the middle of a transaction

the resolution is try rollback to end transaction on the reuse connection
Merge pull request #12 from quaff/master

Fixed connection leak, better than pull request #11
Merge pull request #11 from avalliani/master

Fixed an issue with ConnetionHandle.close() resulting in a connection leak.
fix broken connection was not removed from pool when close occur exception

2013-08-19 12:22:22,178 com.jolbox.bonecp.ConnectionTesterThread ERROR Destroy connection exception
java.sql.SQLRecoverableException: IO Error: Connection reset
	at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:770)
	at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:4585)
	at com.jolbox.bonecp.ConnectionHandle.internalClose(ConnectionHandle.java:545)
	at com.jolbox.bonecp.ConnectionTesterThread.closeConnection(ConnectionTesterThread.java:163)
	at com.jolbox.bonecp.ConnectionTesterThread.run(ConnectionTesterThread.java:95)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:189)
	at java.net.SocketInputStream.read(SocketInputStream.java:121)
	at oracle.net.ns.Packet.receive(Packet.java:311)
	at oracle.net.ns.DataPacket.receive(DataPacket.java:105)
	at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:305)
	at oracle.net.ns.NetInputStream.read(NetInputStream.java:249)
	at oracle.net.ns.NetInputStream.read(NetInputStream.java:171)
	at oracle.net.ns.NetInputStream.read(NetInputStream.java:89)
	at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123)
	at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:79)
	at oracle.jdbc.driver.T4CMAREngineStream.unmarshalUB1(T4CMAREngineStream.java:426)
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:390)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
	at oracle.jdbc.driver.T4C7Ocommoncall.doOLOGOFF(T4C7Ocommoncall.java:59)
	at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:757)
	... 12 more
Merge pull request #13 from quaff/master

fix broken connection was not removed from pool for oracle
- fixed NPE on transaction memorization when handle is null
- fixed performance problem with transaction memorization caused by handle recreation always wrapping proxied connection in a new proxy
Merge pull request #14 from subes/master

fixed transaction memorization, which was slow and broken
Merge branch 'master' of github.com:wwadge/bonecp
Fixed tests, fixed bug #1152815, bumped up version to -rc3
Fix for Bug #1223989
Revert "Fix for Bug #1223989"

This reverts commit 91beaf0a8f20aeedbd22aa8503e941952321680a.