streams: set listener first, emit 'data' later

When switching into compatibility mode by setting `data` event listener,
`_read()` method will be called immediately. If method implementation
invokes callback in the same tick - all emitted `data` events will be
discarded, because `data` listener wasn't set yet.
stream: Override addListener as well as on

For the compatibility switch.
stream: Add readable.push(chunk) method
stream: Use push() for readable.wrap()
net: Use readable.push() instead of private methods
http: Use stream.push() instead of touching _readableState
http: Don't switch the socket into old-mode