Maxretry Handler

This was originally started here:
https://github.com/otherlevels/sneakers/tree/maxretry and discussed as
a sneakers issue here: https://github.com/jondot/sneakers/issues/18. I
took this, updated the rest of sneakers to work with it and wrote tests
of both Handlers to ensure things are still working as expected. NOTE:
This is a breaking change in that any Handlers out there will no longer
work as the interface has changed. I expect there may be one more
interface-changing commit to follow on to this depending on how to
tackle the metrics issue.