title: splice wrongly removes last item when using components
body: <p>I'm using Rivets.js to draw some components within an rv-each-* block</p>
  
  <p>They all render fine when the page loads. 
  When I Splice the first element of the model, the model correctly removes the first element but the rv-each-* block removes the last element. </p>
  
  <p>The component is just made up of a button that contains the text of the objects value it is bound to. Next to each component call I print some text that is also bound to each objects value. The two should be the same, but after the Splice they are not.</p>
  
  <pre><code>var model2 = [{ "value":"1"},{"value":"2"},{"value":"3"}];
  
  rivets.components['control'] = {
      template: function() {
          return '&lt;button&gt;{data.option.value}&lt;/button&gt;';
      },
      initialize: function(el, attributes) {
          return new controlviewmodel(attributes);
      }
  };
  
  function doSplice()
  {
      model2.splice(0,1);
  }
  
  &lt;table id="view"&gt;
  &lt;tr rv-each-option="model"&gt;
      &lt;td&gt;
          &lt;control option="option"/&gt;
      &lt;/td&gt;
      &lt;td&gt;{option.value}&lt;/td&gt;
  &lt;/tr&gt;
  &lt;/table&gt;
  </code></pre>
  
  <p>I've created a fiddle to try and show my problem: <a href="http://jsfiddle.net/dko9b9k4/" rel="nofollow">http://jsfiddle.net/dko9b9k4/</a></p>
  
  <p>Am I doing something wrong or is this a bug?</p>
  
  <p>Edit: this example can be fixed by changing </p>
  
  <pre><code>return new controlviewmodel(attributes);
  </code></pre>
  
  <p>to <code>return attributes;</code></p>