help_print_desc: Simplify implementation.
Simplify the way this function works by basing the loop around strcspn.
There is a slight change of behaviour when called with i==0 and an empty
description. Previously, no newline was printed. Now, a newline is
printed. I think the original behaviour was a mistake as it does not
make much sense (and this function serves no real purpose unless i is
nonzero). The tests are updated to expect this behaviour change.
As a bonus, we no longer tickle a problem with some ancient systems
(e.g., ULTRIX 4.5) which have a printf that doesn't support a negative
precision argument to mean "default precision". This problem actually
has no coverage in the test suite, so fix that up too.