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.
The same as `OnErrorFunc`. In fact we could keep `OnErrorFunc` as is, remove `RetryDelayFunc`, and alter the API contract. It feels unnecessary to require that `OnErrorFunc` return `null` just to call `RetryDelayFunc` immediately after that. Might as well return from `OnErrorFunc` what `RetryDelayFunc` would have returned without going through `null`.