mtest: collect stdout/stderr even in verbose mode
mtest: collect stdout/stderr even in verbose mode

Using verbose mode dropped stdout/stderr from the logs, because
it was not captured.

Now that we can easily stick code in the middle of the reading of
stdout/stderr, use that to print stdout and stderr on the fly
while also capturing them for the logs.  The output is line-buffered.

As a side effect, this also fixes a possible deadlock due to
not using ensure_future around stdo_task and stde_task.  In
particular:

- the stdo_task coroutine would not terminate until the test closed
stdo_task

- the stde_task coroutine would not start until the stdo_task
coroutine finished

Therefore, the test could get stuck waiting for its parent to
read the contents of stderr, but that would not happen because
Meson was still in the stdo_task coroutine.

mesonbuild/meson,mesonbuild/meson,jpakkane/meson,QuLogic/meson,QuLogic/meson,QuLogic/meson,jpakkane/meson,QuLogic/meson,mesonbuild/meson,pexip/meson,mesonbuild/meson,mesonbuild/meson,pexip/meson,mesonbuild/meson,jpakkane/meson,QuLogic/meson,jpakkane/meson,QuLogic/meson,pexip/meson,pexip/meson,jpakkane/meson,QuLogic/meson,mesonbuild/meson,pexip/meson,mesonbuild/meson,QuLogic/meson,mesonbuild/meson,pexip/meson,jpakkane/meson,pexip/meson,mesonbuild/meson,jpakkane/meson,pexip/meson,jpakkane/meson,jpakkane/meson,pexip/meson,QuLogic/meson,pexip/meson