Restructured to allow easier extension to other types of input file. AbstractFile implements file reading of near-arbitrarily formatted files intended for database entry