Resync latest trunks and bug fixes

Here are some rsync from the latest version I found in pub. As you copied it to a git repo and I couldn't find as well original author repo, let's try at least to have the github versions aligned.

This pull requests:
- resync with latest code version that is available in pub.
- Support string entry containing quotes, commas and \n. (the current version in pub produces a stacktrace for something like: foor1,"foo2,foo3\nfoo4",foo5.
- Some content can be empty, don't throw at them