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.
Update version to 2.0.0 due to laziness
Merge pull request #52 from drbrain/lazy

ConnectionPool::TimedStack is now lazy
Update README on laziness.
README formatting.
README section reordering.
Prefer 1.9+ syntax in README + normalize examples.
Require proper files.
Make sure `Wrapper` proxies Kernel methods.

Proves that #54 is not an issue.
Normalize style in tests.
polish