Test ConnectionPool#checkout
Test ConnectionPool#checkout with a thread
Test ConnectionPool#checkin
Alphabetize
Test ConnectionPool#checkout with timeout
Test ConnectionPool#checkin without connections

This would raise NoMethodError because the stack was never assigned.
This causes #checkin to become a no-op which may not be desired
behavior.
Test checkin after multiple checkouts

The local thread records how many times a connection has been checked
out so it can be returned to the pool when all have been checked in.
Test ConnectionPool#with

Ensure that a connection is checked out and checked back in properly.
Test Wrapper#respond_to?
Test Wrapper#method_missing
Test Wrapper#with
Merge pull request #49 from drbrain/improve_connection_pool_tests

Improve connection pool tests
Merge pull request #50 from drbrain/improve_connection_pool_wrapper_tests

Improve connection pool wrapper tests
Raise Error when checking in without checkout

This adds ConnectionPool::Error, a RuntimeError, and raises it when you
try to #checkin when you have never checked out a connection.

A follow-up commit will raise an exception if you have checked out a
connection before but do not have anything checked out when you try
to #checkin.
Raise Error when there is nothing to checkin

Now an Error is raised regardless of prior #checkout (to create a stack
of connections).  This required updating Wrapper#with to not attempt
to #checkin after a failed #checkout.
Update for precedence and readability per #51
Merge pull request #51 from drbrain/raise_on_nothing_to_checkin

Raise on nothing to checkin
Speed up test_wrapper_with
Speed up test_heavy_threading
Speed up test_with_timeout_override