Pump the zfs send pipe on our own

Python subprocess.Popen doesn't handle large stream of data very well
between process in communicate(), it was causing zfs send to become a
zombie, hanging the second part of the shell.

While we are here we can get rid the dd in the pipe as we are doing it
in the loop already.

Ticket:	#4600
(cherry picked from commit fe5d458fc4cdd26398a36a049cf05881c6fb9d46)
stdout is not a pipe anymore (testing leftover)

(cherry picked from commit f35fff7d760c7fa186e7f7fa8ac3f5d82ad1f888)