Better CSV support

This adds a new CSV loader/exporter for Framian. This supports a feature rich set of formatting options - including row-delimiters, empty/invalid markers, and quote escapes. It also allows auto-detection of all or some of the formatting options (excluding header detection, which was flakey). The parser itself parses in chunks and can read the data from a stream of bytes, rather than all-at-once.