Soostone/retry — pull request #8 by maoe (2014-06-06 03:50:08+00:00)
Title: Make backoff strategy replaceable

This patch allows us to replace the backoff strategy with an user-defined one. I've also added some predefined strategies.

A motivating example would be as follows:

```haskell
capped :: Int -> (Int -> Int -> Int) -> Int -> Int -> Int
capped maxDelay backoff base n = backoff base n `min` maxDelay

testSettings :: RetrySettings
testSettings = def
{ backoff = capped (10^6) exponentialBackoff
}
```