lazy init of tmpSet, hinting for array list, and

re-use existing tmpSet array instead of allocating
a new one every sort / merge