In the `prepareCurrentRow` I use the `array_shift` function. So when the row is parsed the first buffered row is pop into `$this->currentRow`.

Because I read blocks of 1024 bytes from the file I cannot estimate the number of columns I will parse when I read data from the file. So I must store what I just parsed into a buffer.

I do not parse another row if there is at least 2 rows in the buffer (1 that is finished to parse and another that is partially parsed)

In my debug tests, I printed the `memory_get_usage` on the `current` function. For a big feed (~8000 lines and ~400 columns) with the first version of this class it was around 920 000 000. With this version it does not exceed 1 200 000)