implement grep(EXPR)

This is also known as select(EXPR) for the jq folk.

Generalized the function parser to make it easier to add new functions.
`empty` is a function that takes no argument (though we do not yet put
it in the FUNCTIONS part of the docs).

Our recursive regex forces us to require Perl 5.10. I don't think this
is unreasonable, even ancient CentOS has 5.10 installed...

Fixes #7