- dropped SKIP_EMPTY and READ_AHEAD due to strange behavior when using current(), seek(), and rewind(). Skipped empty rows instead with code.
- getLineNumber now uses SplFileObject::key() for accurate numbers
- getLastLineNumber(), for possibly splitting up a large CSV file and processing in a queue
- getCurrentRow() to accurately get a array from the current line
- advanceTo() to move to a file line
- setHeaderLine() to set a header line that's not the first row
- removed incrementLine() since the core is using SplFileObject for seeking, the method would make line numbers inaccurate
- rowIsEmpty() to check if it's a completely empty line or empty with delimiters
- Unit tests and fixtures to test all new and refactored behavior