A CSV parser. The parser defined here is RFC 4180 compliant, with the
following extensions:
- Empty lines are ignored.
- Non-escaped fields may contain any characters except
double-quotes, commas, carriage returns, and newlines.
- Escaped fields may contain any characters (but double-quotes need
to be escaped).
The functions in this module can be used to implement e.g. a resumable
parser that is fed input incrementally.