ENH: Add header data-structures in GenericIOBase

Added GlobalHeader,RankHeader and VariableHeader in the
GenericIOBase header since these data-structures are used
by both readers/writers.