Fixed keyword parameter typing bugs

Dark magic of the type system supported by @jurgenvinju
Deprecated CSV IO functions using a map instead of keyword parameters
WriteCSV now correctly support unicode chars

Fixes #513
Better performance, and safer unicode (related to #513)
Fixing the quotation for writeCSV

Working on issue #506
CSV now writes valid CSVs and is almost completely lossless

Finally fixes #506

It supports better type inference, and it reports failure of reading earlier.
(Instead of after reading all the records)