Improve progress() ease of use and use fputs() instead of puts() in conio.h

Automatically add \n when reaching 100% progress. Hide cursor at 0% and
show it again at 100% progress.

Also, make sure the conio.h macros use fputs() instead of puts().  Most
notable difference is that puts() appends a newline char that can screw
up your intended output.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Another demo of BSD sys/queue.h API, this time TAILQ