feat: extract interfaces to separate sub package

Also, renamed the interfaces. `Csv` prefix seemed unnecessary since
`csv` is in the package path.
docs/fix: refer to reader for reader

This fixes #4.
docs: document all public types and functions