scp: dynamic transfer timeout based on progress

Reset expect timeout as long as there is progress on the trasfer
and only allow the timeout to kick in if the transfer stalls.

This makes it easier to transfer (large) files since no explicit
timeout has to be set to cover the whole transfer.