system_l: enable run_cmd_pipe() to run shell commands
ugtrain: system: enhance run_cmd(), add documentation

The function run_cmd() is renamed to run_cmd_bg() and it is
selectable now if the parent should wait for the child.

All system functions have a documentation, now.
ugtrain: discovery: enhance stage 3 preparation

We need at least 3 arguments in stage 3: Heap start and end offset
and the memory allocation size (discovered in stage 1 or 2).

So the minimum discovery string for stage 3 looks like this:
'3;0x0;0x0;<size>'

For convenience we determine the code start and end address
automatically now with a long shell command. It is based on
'objdump -p'.
ugtrain: discovery: support stage 4 completely

To get this right we rename the stage 4 step required for automatic
adaption into stage 5 which only differs in the processing within
ugtrain from stage 4. For libmemdisc these stages are handled
equally.

The new stage 4 is handled like stage 3. If we don't know the
unique code address yet, then we get upto 10 code addresses and
their stack offsets back per malloc call.