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.

It doesn't matter much to me, I just thought that you wanted to avoid boxing as much as possible, and this `AnyVal` will be end up being boxed most of the time, based on what I see in the rest of the code.