Remove opencsv

- Replaced opencsv with BufferedCharSeeker
- Updated BufferedCharSeeker to handle quoted strings
I like the concept of skipChar, but it's just way too expensive to move all trailing, potentially millions of chars, one step backwards. I think this can be solved more efficiently by having a "skip offset", local to this particular call to `seek` that we increment in `skipChar()` and that `nextChar()` uses and moves the character it just read that many steps back. The next call to seek will do an initial skipping of that number of chars, and we're good. This way we only move characters of the most recent value, no other characters.