split hdf5 out to its own file.

implementation for it is large/nasty/distracting.
add some more ignores.