Bugfix where state accidentally reset (#58)

We were accidentally resetting some tracking variables if large datasets were
passed in.

/cc @scraperdragon
Detailed explanation: if you expand the diff above you can see that this `cls.flush()` is done within a loop over every datum. That means there maybe more data to follow, and yet `flush()` reset important variables `unique_keys` and `buffered_table`. The new parameter prevents that.