- dropped SKIP_EMPTY and READ_AHEAD due to strange behavior when using c...

- 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

This is a pretty major shift in the core code so if you see any issues let me know. I got about 87% official coverage from Xdebug for the Reader class, but I'm sure it's more. For some reason the constructor is getting called, but the code coverage doesn't show that those lines are getting called.
Code formatting here is off.