refactor CSV function fetch() to allow using the arg2 "header" option on any data

Original test suite passes -- no new tests written to check this feature.

Now what it does is unshift the header in arg2 header onto shared.data.rows, which
may not be useful of shared.data.rows[0] already contained a header which now
becomes the first data row.  But, at least the option is available so one doesn't have
to use, say,  array.concat to get header and data into a single object
before invoking CSV.