Detect error in StatementCache when the underlying schema changes
Refactor helper method to get statement cache
The attribute doesn't seem to achieve anything; remove it
Rather than get and remove, just call remove
Throw away the least-recently-used statements, not the most frequently used

Also switch to a HashMap from a ConcurrentHashMap; these methods aren't threadsafe anyway
Add getCacheSize function back in
Make some private methods private
Reset the statement cache when we are reset
The important missing piece: don't clear the statement cache if the connection hasn't changed
Add note about odd reset() contract
Rename reset -> initialize
Split reset => initialize / cleanup
Reworking state to be largely immutable
cleanup and initialize call up the chain; setHandler can't be used to reset the handler
Fix subtle threading bug
Check that we never get a closed connection in TestConcurrency
Fix unit test to reflect new statement pooling strategy

The global statement limit was problematic; we've gone with per-connection instead