Extracting a base class from the FileSource class.

This will be utilised by the future sqlite class (and potentially other IO bound classes which may usefully support asynchronous mode). Most of the gruntwork of window
management will take place within this class, with subclasses defining IO mechanisms.