Add compression of hdf5 timeseries.

This is done in a seperate process so that we can dump the image in the
fastest way possible and get back a responsive ui and then compress
offline.

The uncompressed image is written 1 hdf5 dataset per file for
efficiency, when compressing we convert it into a single dataset with
the third dimension as time. This is both necessary for compression, and
kind of useful because it will allow slicing along time.