Make par_loops properly collective again

On CPUs, code compilation is now a collective operation (we only build
the code on rank zero).  As a result, we can't short circuit
computations for zero-sized sets since we may be left with an empty code
cache.