Simplify streams: request/shutdown events, and this.end()