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.
You're misunderstanding why I did this.  I'd have left a comment right here, but this is JSON, so we can't have comments, so I put it in the commit message instead....

Basically, we only want `CROSS JOIN treemap_userdefinedcollectionvalue` to appear once, even if you query `udf:tree` and `udf:plot`.
So the SQL is empty, and they both depend on `udf`, which contains the actual JOIN clause.
The existing mechanisms prevent `udf`'s SQL from being included more than once, the same way `mapFeature`s SQL is only added once.