Change basic Union extension to take a key, rather than a comparer