fixed random t/03_run-forked.t failures

https://rt.cpan.org/Ticket/Display.html?id=90477

open3_run uses same child waiting logic as run_forked
(reading from buffer while there's data even when child
has already finished - helps a lot with buffered data),
but what's more importan it doesn't use SIG_CHLD anymore
(defining SIG_CHLD even to sub { 1; } with PERLIO=stdio
seems to be fatal for Select::IO which seems to lose
the end of buffer upon processing SIG_CHLD in parent,
at least it's not available to the caller with can_read())