Merge retry sleeper functionality into retry class

Having the sleeper be separate complicates the retry API and makes it
difficult to implement more complex retry behavior.

This has a user-visible change in that, previously, all hosts in the
host list would be tried before an increment happened- in this version,
each connection failure results in an increment; it's worth noting
because users might want to increase the number of retries.

I changed it both for the commit after this one and also because if you
have a shortish session timeout, and the machine you're on loses network
connectivity but has a large server list, it will end up slamming the
machine as it tries all of the servers without backing off.
Add time deadline functionality to KazooRetry

This allows you to say, for example, "retry this for 10 seconds"