[Chapel Merge] Fix heap to support type declarations without 'new'

Branch: refs/heads/main
Revision: fe4e7247dcbc3b11e7f66f360af53837726381ec
Author: Rocker810
Link: Fix heap to support type declarations without 'new' by Rocker810 · Pull Request #28550 · chapel-lang/chapel · GitHub
Log Message:
Fix heap to support type declarations without 'new' (#28550)

Continuation of #28546 (closed by mistake)
Enables type-based heap declarations like var h: heap(int); without
requiring new.
Added a comparatorType type field (defaulting to defaultComparator) to
the heap record, along with a new init that accepts type parameters
for default initialization. Removed the default from the existing
init's comparator parameter to avoid ambiguity when both init
methods match.

passed all the 36 heap tests.

[Contributed by @Rocker810. Reviewed and merged by @jabraham17]

Compare: Comparing 99309eebb947cb873ed77176c46aef04380cd984...55fe8ed5b181b11ca05183eef7d927b89c6343cb · chapel-lang/chapel · GitHub

Diff:
M modules/standard/Heap.chpl
A test/library/standard/Heap/type/testNewCustomComp.chpl
A test/library/standard/Heap/type/testNewCustomComp.good
A test/library/standard/Heap/type/testTypeCustomCompDecl.chpl
A test/library/standard/Heap/type/testTypeCustomCompDecl.good
A test/library/standard/Heap/type/testTypeDecl.chpl
A test/library/standard/Heap/type/testTypeDecl.good
https://github.com/chapel-lang/chapel/pull/28550.diff