Row splitting

- rows are split (partitioned) into a configurable maximum size
- closes #1