stream::pump: allow all sequence types as input, but special-case strings & buffers as a single chunk