More functional tools

Added an F#-like `|>` operator, an item selector generator function and
an `fapply` function which applies a list of functions to its argument.
Make `fapply` work with vector arguments

Previously `fapply` did the “wrong thing” when called with a vector
value, such as:

    fapply(1 : 3, lp(sprintf, 'a:%d'), lp(sprintf, 'b:%d'))

In particular, the result was:

    [[1]]
    [1] "a:1" "a:2" "a:3"

    [[2]]
    [1] "b:1" "b:2" "b:3"

Rather than the expected

    [[1]]
    [1] "a:1" "b:1"

    [[2]]
    [1] "a:2" "b:2"

    [[3]]
    [1] "a:3" "b:3"

I.e. the value-vector was transformed into a function-list. This has now
been fixed and the new version returns the expected result.
Add documentation for `item`