title: why is the second item in these RxJS.Observable sequences getting skipped?
body: <p>I have the following RxJS code:</p>
  
  <pre><code>let items = Observable.of({
    val: "one",
    type: "string"
  }, {
    val: "five",
    type: "string"
  }, {
    val: 2,
    type: "integer"
  }, {
    val: 10,
    type: "integer"
  }, {
    val: 20,
    type: "integer"
  });
  
  items
    .groupBy(x =&gt; x.type)
    .subscribe(obs =&gt; {
      let head = obs.first();
      let tail = obs.skip(1);
      head
        .do(x =&gt; console.log('head == ', x))
        .concat(tail)
        .do(x =&gt; console.log('tail == ', x))
        .subscribe(x =&gt; console.log('sub == ', x));
  
    });
  </code></pre>
  
  <p>Here's the output:</p>
  
  <pre><code>head ==  Object {val: "one", type: "string"}
  tail ==  Object {val: "one", type: "string"}
  sub ==  Object {val: "one", type: "string"}
  
  head ==  Object {val: 2, type: "integer"}
  tail ==  Object {val: 2, type: "integer"}
  sub ==  Object {val: 2, type: "integer"}
  tail ==  Object {val: 20, type: "integer"}
  sub ==  Object {val: 20, type: "integer"}
  </code></pre>
  
  <p>Why is the second item not getting emitted?</p>
  
  <p>Here's a <a href="http://plnkr.co/edit/aqthwXUfH6oTwTKp9M56?p=preview" rel="nofollow">Plunk that demonstrates my problem</a>.</p>