Tzz/redmine 2081 data facilities

These are implementations of several functions from Redmine#2081:

* `every`, `none`, and `some`: test a slist for matches and return a class expression if every/none/some of the elements match.  Quits early when possible.

* `nth` and `sublist`: extract the slist elements at a specified offset or between offsets

* `uniq`: get only the unique elements of an slist

* `filter`: filter an slist by regex or exact match, getting up to a maximum, and possibly inverting the match (see long discussion of `grep -v` functionality).  `grep` has been refactored to use this facility as well.

These are undocumented and for discussion only right now.  Please review and let me know what you think about the semantics or implementation.