Redmine#5624: readcsv(): new function with acceptance test

see https://dev.cfengine.com/issues/5624

Simple function to properly parse a CSV file into a data container.  Does appropriate CSV parsing, especially escaped quotes.
Perhaps a check when the limit is too low as well?