add group_by( EXPR ) function

The filter program now has a "scope", which persists information between
documents. This makes `jq`'s -s (slurp) function unnecessary, since the
collection functions will always assume that they are working on an
array (at the highest level, the stream of documents).

I have not tested all possible interactions of this function. I am
fairly certain there are bugs lurking here. Pipes will probably end up
revealing them...

We may need to break up the test script into individual items soon...

Fixes #15