Imageset union

@skirpichev, @mrocklin Please have a look.
Can it be accomplished by repeated application of pair-wise rules?

    Union(a, b, c, d) == Union((Union(a, b), Union(b, c))