Further cleanup of gistsplit.c.
Further cleanup of gistsplit.c.

After further reflection I was unconvinced that the existing coding is
guaranteed to return valid union datums in every code path for multi-column
indexes.  Fix that by forcing a gistunionsubkey() call at the end of the
recursion.  Having done that, we can remove some clearly-redundant calls
elsewhere.  This should be a little faster for multi-column indexes (since
the previous coding would uselessly do such a call for each column while
unwinding the recursion), as well as much harder to break.

Also, simplify the handling of cases where one side or the other of a
primary split contains only don't-care tuples.  The previous coding used a
very ugly hack in removeDontCares() that essentially forced one random
tuple to be treated as non-don't-care, providing a random initial choice of
seed datum for the secondary split.  It seems unlikely that that method
will give better-than-random splits.  Instead, treat such a split as
degenerate and just let the next column determine the split, the same way
that we handle fully degenerate cases where the two sides produce identical
union datums.

ashwinstar/gpdb,jmcatamney/gpdb,ovr/postgres-xl,50wu/gpdb,ashwinstar/gpdb,jmcatamney/gpdb,lisakowen/gpdb,xinzweb/gpdb,greenplum-db/gpdb,xinzweb/gpdb,lisakowen/gpdb,50wu/gpdb,jmcatamney/gpdb,adam8157/gpdb,50wu/gpdb,lisakowen/gpdb,pavanvd/postgres-xl,50wu/gpdb,adam8157/gpdb,xinzweb/gpdb,lisakowen/gpdb,ashwinstar/gpdb,adam8157/gpdb,xinzweb/gpdb,50wu/gpdb,ovr/postgres-xl,Postgres-XL/Postgres-XL,oberstet/postgres-xl,pavanvd/postgres-xl,lisakowen/gpdb,jmcatamney/gpdb,jmcatamney/gpdb,ashwinstar/gpdb,greenplum-db/gpdb,zeroae/postgres-xl,adam8157/gpdb,Postgres-XL/Postgres-XL,zeroae/postgres-xl,ashwinstar/gpdb,jmcatamney/gpdb,greenplum-db/gpdb,yazun/postgres-xl,yazun/postgres-xl,pavanvd/postgres-xl,ovr/postgres-xl,adam8157/gpdb,lisakowen/gpdb,ashwinstar/gpdb,50wu/gpdb,oberstet/postgres-xl,techdragon/Postgres-XL,zeroae/postgres-xl,jmcatamney/gpdb,yazun/postgres-xl,adam8157/gpdb,greenplum-db/gpdb,lisakowen/gpdb,oberstet/postgres-xl,greenplum-db/gpdb,ovr/postgres-xl,Postgres-XL/Postgres-XL,adam8157/gpdb,zeroae/postgres-xl,techdragon/Postgres-XL,Postgres-XL/Postgres-XL,50wu/gpdb,greenplum-db/gpdb,xinzweb/gpdb,pavanvd/postgres-xl,yazun/postgres-xl,ashwinstar/gpdb,oberstet/postgres-xl,adam8157/gpdb,ashwinstar/gpdb,xinzweb/gpdb,greenplum-db/gpdb,lisakowen/gpdb,greenplum-db/gpdb,ovr/postgres-xl,pavanvd/postgres-xl,xinzweb/gpdb,yazun/postgres-xl,techdragon/Postgres-XL,xinzweb/gpdb,techdragon/Postgres-XL,50wu/gpdb,techdragon/Postgres-XL,oberstet/postgres-xl,jmcatamney/gpdb,Postgres-XL/Postgres-XL,zeroae/postgres-xl