O(n+m) Find the offsets of all non-overlapping indices of
needle within haystack.
This function is strict in needle, and lazy (as far as possible)
in the chunks of haystack.
In (unlikely) bad cases, this algorithm's complexity degrades towards O(n*m).