Add support for CSV files with column headers

Added a CSVReader#allWithHeaders method for reading a whole CSV file as a `List[Map[String, String]]`, where the keys are the column headers.

Returns an empty map if the file has 0 or 1 lines.