This adds an fts_open_b() variant of fts_open() which takes a block
instead of a function pointer.
This was inspired by, and is intended to be compatible with, Apple's
implementation; however, although our FTS and theirs share a common
ancestor, they have diverged significantly. That and the fact that
we still target compilers which don't support blocks means Apple's
implementation was not directly reusable.
MFC after: never
Relnotes: yes
Sponsored by: Klara, Inc.