Working code for catching throttle limits and retrying

This is a working branch.  I put it up for discussion so that we can talk about the merits of continuing with fog versus moving to aws-sdk.

There is some expected refactoring since this is the first pass, but I didn't want to optimize if we wanted to pivot to a different task/direction.  Especially if STS is not seeing the problem any longer.

/cc @thbishop @brettweavnet