Remove push_not_empty macro and update compiler version.

Instead of checking when pushing sets, filter out all empty sets after the partitions
are fully built. This erquires an extra pass through the vector, but is simpler and easier
to reason about/debug.