data-foreach should render all items in an array even if there are duplicates

This PR ensures that when an array with duplicate items passes through `data-foreach` we render all the items. Let me illustrate the bug...

**content**
```coffee
items = [1,2,3,3]
```

**template**
```html
<ul>
  <li data-foreach-item="items" data-bind="item"></li>
</ul>
```

**before**
```html
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
</ul>
```

**after**
```html
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>3</li>
</ul>
```
I feel like this implementation could be cleaned up, and that I may have overlooked how items are removed. I just wanted to get something in the works. @hornairs you were to last one to work on the iterator binding so I'd love it if you took a look once you're back online.

This bug was reported on the Google Group here https://groups.google.com/forum/?fromgroups=#!topic/batmanjs/eZrK7ASGAXc