added eachParams function to support functions with more than 1 argument.

eachParams accepts:
1. 'this' object (optional)- represnets the object the function needs to be applied on.
2. Array of arrays - 'eachParams' will iterate over the given array and invoke the function give on every array. must be compliant with the function accepted params.
3. function - a function to invoke on every array in the given array.
4. callback - A callback which is called after all the iterator functions have finished, or an error has occurred.

Example:

async.eachParams([['a.txt', 'some text 1'], ['b.txt', 'some text 2']], fs.writeFile, function(err) {
		//  if any of the saves produced an error, err would equal that error
}

* This commit includes tests