Misc CSV improvements

A bunch of improvements to the CsvProvider I found the need when working with real csv files this weekend. The individual commits have more details