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