ConnectionPool::TimedStack is now lazy

Now TimedStack only creates connections when the internal queue is empty
and the number of connections is less than the maximum set.  By default
no connections are created when the pool is created.

This required some changes to the TimedStack tests because I wrote poor
tests the first time around.  The new tests better exercise the intended
behavior of TimedStack.

This required some changes to the ConnectionPool tests to use up
connections because now an unused pool has no connections.