Csv improvements

* Allow to force a csv column into string option instead of string ("" will be outputed as None)
* Support for overriding the scheme of just one or two columns instead of everything in a nicer way
* When a column only has zeros and ones, infer it as boolean
  * To be safe, if there's only zeros, or only ones, we keep it as int, as there's probably not enough samples to deduce it's always a boolean
* `SafeMode` parameter to make the inferred types support missing values in all columns even if they don't appear in the sample
* `PreferOptions` parameter to make the inferred types always output option instead of nullable (including decimal option instead of float)