Make cord foldl tail-recursive.

Make cord.foldl and cord.foldl_pred tail-recursive.  This may be
expected by users as cords are often used as a replacement for lists.

Also make the recursive calls in cord.foldr and cord.foldr_pred amenable
to last call optimisation.  However, they still use stack space
proportional to the size of the input due to calling list.foldr.

library/cord.m:
	As above.

tests/hard_coded/test_cord2.m:
tests/hard_coded/test_cord2.exp:
	Add tests for fold order.

NEWS:
	Announce the change.