title: ReactiveX: Group and Buffer only last item in each group
body: <p>How to group an Observable, and from each GroupedObservable keep in memory only the last emitted item?
  So that each group would behave just like BehaviorSubject.</p>
  
  <p>Something like this:</p>
  
  <pre><code>{user: 1, msg: "Anyone here?"}
  {user: 2, msg: "Hi"}
  {user: 2, msg: "How are you?"}
  {user: 1, msg: "Hello"}
  {user: 1, msg: "Good"}
  </code></pre>
  
  <p>So in memory we'd have only have the last item for each <code>user</code>:</p>
  
  <pre><code>{user: 2, msg: "How are you?"}
  {user: 1, msg: "Good"}
  </code></pre>
  
  <p>And when a subscriber subscribes, these two items were issued right away (each in it's own emission). Like we had BehaviorSubject for each <code>user</code>.</p>
  
  <p>onCompleted() is never expected to fire, as people may chat forever.</p>
  
  <p>I don't know in advance what <code>user</code> values there can be.</p>