Make t/choicepoints.pl behave correctly again

That test is a little tricky because it should fail with a TODO note.
However when it goes wrong, it passes with a TODO note which creates a
very subtle change in the 'prove' output.  I didn't notice it acting
incorrectly earlier.

We have to cut choicepoints inside call_ending/2 otherwise later code
will backtrack and keep trying choicepoints until one succeeds.
call_ending/2 only cares about the behavior of the first solution.
Add tests and fix todo tests

When I introduced call_ending/2, I accidentally broke todo tests.
Unfortunately, I had no tests for them so I didn't notice the mistake.