Previous commit was crap. Tempting to think that searches happen against
indexes, but they really happen against the wrapping conditions.
Allow unions of set. This is the fist and most basic step in allowing "or"
queries.

Current unions can never be used for an index-based iteration. It would be
nice to fix this, but I'm not sure how without making this an O(N*M). If it's
kept so that they can't be used, we should make sure they are never placed
at the start of our condition list.