Added support for reading CSV header from separate file

and support for having multiple files look like one CharSeeker. There's
also a clearer separation of concerns between, Readable and CharSeeker and
where they are instantiated.
Merge pull request #3361 from tinwelint/2.2-bip-csv-header-in-separate-file

Added support for reading CSV header from separate file