Simplification + optimization of _.reduceRight

Clears up the confusing loop

```
_.each(obj, function(value, index, list) {
      index = keys ? keys[--length] : --length;
```
Note a bad idea! I'll do that in an hour or so...

I'm not sure how I feel about the loop construct (`index = keys ? keys[length] : length;` but if we're cool with that we can rewrite some of the other methods (`_.map`, `_.filter`, `_.some` etc