emqx_utils_stream:take/2
consume/2
Which is more neutral and harder to confuse with a destructive `take` in collections.
Also introduce a generic _stream_ concept, mostly to deal with iterating over 2 ETS tables at once with `ets:match_object/3`.