Excel Reader Refactor - Base Class Introduction
This is to provide further enablement of new Excel readers like openpyxl and potentially one for reading binary files.

The main goal here was the introduction of a base reader class which defines the properties / methods that any subclass needs to define to plug in to.

This ultimately could be refactored into a sub-directory which splits readers into it's own module