Track rows by hashKey to prevent ‘duplicates in a repeater' issue

When you dynamically remove and then add columns to a grid this can result in an error like this:
```
Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: row in rowContainer.renderedRows track by row.index, Duplicate key: 3
```

You can see this behaviour in this example of the tutorial: http://ui-grid.info/docs/#/tutorial/2_swapping_data
Just try removing the first row and then adding some new rows.

To fix this problem I changed the repeater to track the row by the internal hashKey of its entity.