Retry tarballs

This implements retries as per #12 I don't think retry has a nice API and it wasn't a very complicated thing to just inline some basic retry logic.  We can factor something out into a nicer module at some point in the future.

(Needs tests)