Re-implement race/all using especially's iterator operations.

- They now correctly turn iteration failures into rejections.
- Added some tests for race.
- Used especially's Invoke method where appropriate.

This should allow writing tests for #83 by creating custom misbehaved iterables.