add possibility to create a dialect for the csv file

Add the possibility to create its own Dialect in the custom parser.
It can be useful especially because ```sniffer.sniff(sample_data, delimiters=',;\t')``` is not always able to find the right dialect.


Well, this is a good idea, I will do it if checking the type is not acceptable because it still won't work for my case. But maybe it is too specific to solve this in this generic module.

I thought it would be great to test the type as if it is not empty but filled with something of a wrong type, it will raise an error.
In my case, the value returned is ['']. But I guess we can imagine a lot of files with bad type values without beeing empty.