@CsvFile uses class instead of enum, to make it extendable
Refactored to have separate Line and Row. Line is returned by LineReader. Row is returned by CsvReader.
Encapsulate the use of header within Row
Fixed NPE for Bean properties without getters/setters
Merged line reading functionality in one class
Consolidated the configuration for the various levels of parsing, so that it is more user-friendly, especially when setting manually