Reimplement heapq.merge() using a linked tournamet tree.
This method saves "<" comparisons in almost all cases, especially when one iterable wins repeatedly. It also eliminates the "==" comparisons required in the tuple comparisons of the previous algorithm. Sort stability is maintained by the structure of the tree rather than by storing indices. This follows https://bugs.python.org/issue38938 (thanks Raymond Hettinger for the basic implementation idea) --HG-- branch : heapq_merge