First pass at extracting csv_model from internal codebase.

Ready for review.
Appraisal doesn't appear to be fully setup yet