Parses CSV text into a row-indexed map. The parser is RFC 4180
compliant: it preserves fields exactly (no whitespace trimming),
supports both \n and \r\n line terminators, supports quoted
fields that contain commas, quotes (escaped as "") and newlines,
and does NOT silently renumber rows when the input contains blank
lines — blank lines are preserved as empty rows so row indices match
the source.