allow non-trivial sentinel types in range_facade, make find_first_of work with Iterables