Support configurable csv delimiters

This change allows configurable csv delimiters in both csv sources and
sinks. The change maintains the old interface for backwards
compatability, instead opting to create a new "WithDelimiter" interface.