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.


And why not `(unicode(key or '', 'utf-8')`?