Delete wrong echo

It was there for debugging.
Create shx_echo

echo is a bad idea when it comes to unknown input, since options like -n
or -e cannot be ignored and "--" is always ignored.  We create them
shx_echo that uses printf.
Everybody include shx_string and use shx_echoln

shx_echoln is the shx_echo version that ouputs a new line.  Update tests
too, to use that.
Separate log, io and string handling

More logical and organized approach.
Use $((...))) instead of expr

Also, create a test to catch errors related to expr.  See commentaries
in tests/t_shx_atexit.sh
Merge remote-tracking branch 'origin/master'