Extracting shell name lookup outside function

$current_shell now is a script-level $testsuite_current_shell and
the shell name lookup is executed only once
First real tests added, testsuite debug and setup/teardown

Tests for basic functions (the testsuite dispatcher, empty
placeholder and help), added testsuite_debug as a non-silent
alternative to testsuite_run and the $testsuite_silence script
level variable.

Setup and teardown functions were also added
Experimental stack tracing

testsuite_external was extracted from testsuite_exec to implement
an experimental stack tracing when errors occour.

Debug mode and PS4 variables are now handled by the external script
handler that executes the test functions in separate shell instances.

Detection for ksh, zsh and bash were needed for the first time to
retrieve the sourced bash files (a non-standard but widely available
feature).
Busybox support, better command portability

Calls to ps were changed to more portable versions.

Unfortunately, a check for busybox is needed to detect it and launch
its appropriate shell instance. This was not tested on real embarked
devices using it though.

Calls to head and tail using custom parameters were removed.