Implemented new CSV parser

Automatically handles UTF8, UTF16 big and little endian, different
delimiters, and different line endings.