add `null` to streams that don't carry any data instead of `this` and be explicit about the type in the API

this change is a hopeful performance improvement for some sluggishness
my users are experience; my hypothesis is that we may have been
preventing gc of some short-lived objects by having them reference
long-lived ones.  Either way, there was no good reason to stream `this`
and `null` is a better choice.