Passthrough until the stream is ended if user returned a stream

Hi. There is a problem that the next pipe will not be executed  when I returned a stream. Sometimes we need execute next pipe until the stream in `tap` function is ended. So I created a pull request.
```javascript
gulp.task('test', function() {
    return gulp.src(paths.css)
        .pipe(doSomething())
        .pipe(tap(function() {
            return gulp.src(paths.image)
                .pipe(doSomethingElse())
        }))
        .pipe(tap(function() {
            // this will not be executed, if return a stream above
            console.log(1)
        }))
});
```