use SeparatedValueReader and SeparatedValueWriter

This is meant to be reviewed and possible merged so as to be included in your
pull request, genome/genome#215.