Add custom grouping based on explicit filter groups
This is very similar to #135 (closed), but more verbose, which makes it more flexible/powerful.
The idea here would be that the user would write an explicit, top-level or
filter, and each bracketed subfilter would be a group. For example:
(A or B) or (A and D) or C
would produce three groups:
A or B
A and D
C