Make each() compatible with formulaes, and implement each2() and each3()

This patch allows `each()` to handle lambda formulaes, and implements multiple arguments versions `each2()` and `each3()`.

The new `recycle_args()` helper function is used by `each*()` to recycle lists of length 1. This is currently not consistent with `map*()`. So I could adjust the helper to use R's regular recycling conventions, but it may be better to modify `map2()` and `map3()` to also use `recycle_args()`. This way, lowliner's recycling rules would be consistent with dplyr's, which would be best I think.
Because plucking cannot have side effects I thought it was irrelevant to allow plucking in `each()`. So this gives an error message if the user mistakenly uses `each()` with plucking. I thought it was the reason why you did not include `.f <- as_function(.f)`.

Should I remove the `pluck` argument in `as_function()` and let `each()` pluck?