streams: Replace _read callback with push()

Also, this splits up several readable methods so that they're more inline-friendly, implements `Readable.unshift(chunk)` (the mirror of `Readable.push(chunk)`) and adds a parser example to the docs.