title: Rx distinctUntilChanged allow repetition after configurable time between events
body: <p>Let's consider for a moment the following code</p>
  
  <pre><code>Rx.Observable.merge(
    Rx.Observable.just(1),
    Rx.Observable.just(1).delay(1000)
  ).distinctUntilChanged()
    .subscribe(x =&gt; console.log(x))
  </code></pre>
  
  <p>We expect that <code>1</code> is logged just once. However what if we wanted to allow repetition of a value if its last emission was a configurable amount of time ago? I mean to <strong>get both events logged</strong>.</p>
  
  <p>For example it would be cool to have something like the following</p>
  
  <pre><code>Rx.Observable.merge(
    Rx.Observable.just(1),
    Rx.Observable.just(1).delay(1000)
  ).distinctUntilChanged(1000)
    .subscribe(x =&gt; console.log(x))
  </code></pre>
  
  <p>In which <code>distinctUntilChanged()</code> accepts some sort of timeout to allow repetition on the next element. However such a thing does not exist and I was wondering if anybody knows an elegant way to achieve this by using high level operators without messing with a filter that would require handling state</p>