Add retry.dart and retry_test.dart to quiver.

A first attempt at adding retry.dart and its corresponding retry_test.dart to quiver-dart. Comments *very* welcome.
You could make the code for your tests more linear by using `FakeAsync` from `'package:quiver/testing/fake_async.dart'`.