Auto 488 retry and timeout functions (ready for review)

https://github.com/rackerlabs/otter/pull/313 got way too big, so I split out the new general timeout/retry functionality into this PR.