Add feature match_stream for (infinite) stream

Try to implement `match_stream`, like `match_all`, that treats not only finite lists (`Array` in Ruby), but also infinite lists (stream, `Enumerable` in Ruby).
Tested combination of finite range `(1..5)`, twin-primes (from infinite stream of prime-nums), and multiset/set of nats.
Please review this.