lazyCsvReader using free fuctions and with() for a more functional style, and shorter constructor