new nifti reading implementation, used only in VolumeFile for now
related things like a class for dealing with .gz files and raw files the same way