What exactly are streams in NodeJs and why are they so transformative?