Mimic RecursiveCallbackFilterIterator.

1. Propagate closures to children.
2. The callback also receives the inner iterator.
3. Add test.