Allow multiple connection types in TimedStack

Now #push and #pop accept a connection_args argument following the
timeout.  The TimedStack still limits the total number of connections
managed.

Connections are not yet expired to make room for new connections.

This feature is not yet accessible from ConnectionPool.
Reclaim old connections in TimedStack

This adds an LRU to TimedStack so that the oldest connection type will
be destroyed so a new type can be created.

This only works on ruby 1.9+ because Hash is ordered.  I'm unsure if
this is OK as the tests do not run on Ruby 1.8 (missing
require_relative).  I'm guessing this means that connection_pool does
not support 1.8 even if that is not officially stated anywhere.
Add connection_args support to ConnectionPool

This allows ConnectionPool to support multiple types of connection in
the same pool.
Support connection_args in Wrapper#with

This should complete multiple connection type support for
ConnectionPool.