Adding syntactic sugar to reduce

This PR enables the following two syntaxes:

````js
var concatted = _.reduce([['foo', 'bar'], ['baz'], ['batz']], 'concat');
// => ['foo', 'bar', 'baz', 'batz']
````

and 

````js
var product = _.reduce([2, 4, 8], '*');
// => 64
````

If you like them, I'll also add them to `reduceRight`. Tests and documentation are included. I can break these out into two separate PRs if you prefer. I tried to follow the existing style conventions but let me know if I can make anything look nicer. I wasn't quite sure where the utility methods should live, so I opted for "as close as possible to where they are used".