Add support for multiple predicates

We're supposed to be able to handle multiple predicates, but so far our
code only works with one.


Let's split the parse function up.  Most of what we already had will be
called `parse_predicate`.  It works on one predicate at a time.

We'll use `parse` to split apart the string on commas and send each
portion to `parse_predicate`. A quick bit of error checking verifies
that we have at least one predicate, then we can return our
This tag has no release notes.