adding hdf5 node caching to speed up read/writes
adding events iterator (see Source.__iter__)
datafile index no longer stores codec, adding variables and variable groups to datafile/streams: see self.variables and self.variable_groups
adding descriptive exception when index checking finds bad times