Call function arguments in List functions with multiple arguments (element, index, array)

Native JS `[].map` and `[].forEach` call the given function with `function(element, index, array)`. I think the List functions that take functions in prelude would benefit from the same thing - right now they only call the given functions with `function(element)` in most cases. Providing the index and array would give a lot more flexibility.