Extract some code from player::disp_info to functions

Fixes http://smf.cataclysmdda.com/index.php?topic=7415

Some effect lines end with a ';' ("Melee skill: +0; "), some end with a '.' ("Dodge skill +0. "), that should probably be the same for all lines.

Creates the text first and than prints it with only one final `fold_and_print`.

Edit: this might fix #8459