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, that is because indeed, it can be troubled for some case.
For example I have a file with unwanted empty column which don't return a string as value. As a consequence, it raises an unicode error.

If this solution is not acceptable, what about something like that : 
```if isinstance(value, str) and isinstance(key, str) ```