Refactor of how CopyToTable copies data into pg

- New method copy(self, cursor, tmp_file) that calls
  cursor.copy_from, to allow subclasses to overwrite
- Overridable column separator for the tmp_file, instead
  of always using \t