Adding a sibling to `wait-util`: `attempt-until`

- `attempt-until` returns the result of its called function
  and requires a secondary done?-fn.