Background: the JSON Facet API does not execute sub-facets for a facet
bucket with a 0 count (and the root facet bucket is like any other
This was to help prevent the combinatorial explosion of deeply nested
sub-facets with useless information.
This is obviously incorrect though, when a sub-facet does something
that can expand the domain rather than just restrict it. Facet
exclusions are one of these cases.
For zero facet buckets, we should check if any sub-facets have these
properties and then recurse if so.
Aside: not processing empty sets also helped with issues like what junk values to fill in for statistics... min, max, average, std, etc. JSON doesn't even officially support NaN, so it's nice to be able to leave these junk values out in many circumstances.