stream: Never call decoder.end() multiple times

Fixes decoder.end() being called on every push(null). The tls module does this, and corrupt stream data could potentially be added to the end.