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, I see that having empty columns (the same as duplicated columns), are going to be troubled anyway, because dicts don't add duplicated keys, but you're right, there's no sense for removing the first empy column from the dict. Maybe we should put a warning?