Adding support for a validator option to reader

  * Added validator interface
  * Added needed options to options file
  * Pre-tested push due to env issues, needs to be tested/validated for functionality
Cleaned up file header validation

  - Set system to exit parsing if header validation encountered
  - Created header parse exception class
  - Code formatting/cleanup
  - Fixed CsvFileReaderOptions::__construct to look at the options key, not value
Added file parser, changed validator to abstract

  - Added a parser for the file to parse data fields into expected format
  - Refactored the csv file validator to be an abstract class
  - Added exceptions for invalid data/header fields
  - Incorporated parser, validator changes into file reader class
  - Incorporated parser into options class
  - created base response class to handle default behavior shared by validator/parser responses
Added support for multi-field validation

  * Updated notes re:extension of validateHeader/validateRow methods
  * moved validation of each data row to separate method, called from validateRow method
  * added method for validation of multi-fields (ex: 3 part date field)
Modified datetime check to not pass for empty date.
Overhaul of Validator/Parser approach, updating related files to accomodate

 * Backpedaled on prior approach. Breaking change ftw.
 ** made all public methods operate on the row
 ** all field level methods are protected or greater restriction
 ** all logic-containing methods control their own error generation
 ** Added extensive notes to Parser/Validator to reflect expected use/approach
 * Changed Parser/Validator abstracts to have 'Row' in filename to reflect semantic use
 * Renamed AbstractReaderResponse to ReaderResponse.
 * Removed Parser/Validator response, moved all functionality into generic ReaderResponse object
 ** Added rowData, getters & setters to ReaderResponse
 * Created ResponseHandler class for classes expecting to deliver a reader response. Should (theoretically) be usable either as a property, or by extending the class
 * Updated CsvFileReader to handle new validator/parser approach
Adding in handling for generic row errors