Add support for querying multiple UDF collections at once.

The client must wrap the JSON objects for UDFCs in an ["OR", ...]
combinator, as we can't query for matches on multiple UDFC types for the
same row.

One note, in order to add the tree joins to the query only when necessary, the
"udf:plot" and "udf:tree" SQL are both empty, and depend on "udf".
This introduces some extra whitespace characters in the query, but doesn't hurt
anything.
This change makes this test have questionable value. The cross join only makes sense when paired with a where clause, so testing them separately does little to ensure they work correctly. This test also no longer demonstrates how the API works. I understand this is the result of how the modules/tests are set up. Consider deleting this test, or adding a comment, or making a higher level test that pairs the two together.