Changed kx.iterator.each() implementation

I have changed the way the kx.iterator.each() method works to follow the Array.forEach() spec more closely

```javascript
var iterator = new kx.iterator(['a', 'b', 'c']);
iterator.each(function(key) {
  console.log(key, this);
});
```
would become:
```javascript
var iterator = new kx.iterator(['a', 'b', 'c']);
iterator.each(function(value, key, iterator) {
  console.log(key, value, this); // note that this has changed to the second argument in each()
}, {scope: 'this'});
```