Python3 compatibility

Make this package compatible with both python 2.7 and 3.

Use a mixture of version detection and feature detection to keep the same
interface for both versions of the language.

Increase test coverage with a full integration test on csv_file_to_file.

Some coverage percentages are down because some lines are mutually exclusive, (only ever hit when one version or the other).