Added a slow but exhaustive test.

Idea: To test if the heap is implemented correctly, test that its operations
correctly operate on all possible inputs - not just on all possible inputs
generated by sequences of operations on the current implementation.

To do that, generate all possible interval heaps up to a given size, and
test that single offer / poll operations don't violate the invariants.