Possible memory leak due to usage of ThreadLocals
I am using HikariCP 2.0.1 with Tomcat 8.0.12. The latter keeps complaining about non-cleared ConcurrentBag threadlocal:

27-Sep-2014 00:14:49.001 SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoader.checkThreadLocalMapForLeaks The web application [/medex] created a ThreadLocal with key of type [java.lang.ThreadLocal](value [java.lang.ThreadLocal@4437ca25]) and a value of type [com.zaxxer.hikari.util.FastList](value [com.zaxxer.hikari.util.FastList@62b24a7b]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.

ConcurrentBag uses FastList threadlocal but never removes it. Consequently, this thread cannot be processed by garbage collector.

The easiest and most obvious fix is to provide some shutdown hook for ConcurrentBag allowing to remove it's threadlocal and then use it in pool shutdown routine. As ConcurrentBag will get "corrupted" after shutdown call, it makes sense to track it's state in some property and throw IllegalStateException on subsequent attempts to use this concurrent bag (if necessary).

Best regards, Arthur
