closeSolutionChannelWithNoSolutionIfNeeded
Closes solutionChannel, publishing Solution.no for goal first if solutionCounter is still 0 (i.e. no branch of the search tree ever succeeded). Called once every coroutine spawned for this resolution has completed, to guarantee at least one Solution (a negative one, absent any successful branch) is always published before the channel closes -- mirroring how other it.unibo.tuprolog.solve.Solver implementations always yield a final Solution.No when a goal has no more solutions.
Return
true if solutionChannel was actually closed by this call, false if it was already closed.