HPCC-8477 - DFU server is CPU bound for the first phase of CSV files

These fix improves CSV file spray performance when the target is multiple
nodes.

Changes:

- In this particular case a new CCsvMatcher class introduced because the
  original matcher was a bottleneck. If the Special characters of CSV file
  (separator, terminator and quote) are doesn't change or change to only one
  character long new character with a command line parameter, the the process
  use CCsvMatcher. Any other case the old matcher used.

- The used blocksize increased to decrease IO overload.

- When the split size is bigger than the blocksize
  CCsvPartitioner::getSplitRecordSize() function returns with the summarised
  record size in the buffer instead of individual one until it reaches the last
  part ( which is < blocksize). For the last part is switch back to returns
  with individual record size.

Signed-off-by: Attila Vamos <attila.vamos@gmail.com>
Reworked after review.

Signed-off-by: Attila Vamos <attila.vamos@gmail.com>
Move bool processFullBuffer from member of class to parameter list of getSplitRecordSize() method.

Signed-off-by: Attila Vamos <attila.vamos@gmail.com>
Remove CCsvMatcher.

Signed-off-by: Attila Vamos <attila.vamos@gmail.com>
HPCC-9867 CSV spray incorrectly splitting records with nested quotes

Clone and adapt CSVSplitter::splitLine implementation (from csvsplitter.cpp)
into CCSVPartitioner::getSplitRecordSize() to fix quote handling problem.

Implement missing ESCAPE handling code for CCsvPartitioner class.

Signed-off-by: Attila.Vamos <attila.vamos@gmail.com>
Merge pull request #4783 from richardkchapman/HPCC-9867-fix

Hpcc 9867 fix

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>