CSV Improvements (Fixes #19) (Fixes #85) (Fixes #61) (Fixes #95)

Ignore bank lines
Handle duplicate column names and columns with empty names
IgnoreErrors parameter to ignore rows with different number of columns
HasHeaders parameter to allow csv files without header. In this case we look at the first non-empty data row to define the number of columns
Improve uniqueGenerator algorithm to resume numbering if name already ends in a number
Allow to specify the type or type+unit in the header column within braces, like we already allow for units
Schema parameter to override what's inferred form the header and the data rows. Can specify basic type, if it's nullable or optional, units, and column name. Supports overriding only some of the columns
Support for custom quote character