netcdf standard used for datasaving does not support complex numbers

We use the xarray.to_netcdf method to create our datafiles based on xarray datasets. However, the netcdf standard does not (yet) support complex numbers:

https://stackoverflow.com/questions/47162983/how-to-save-xarray-dataarray-with-complex128-data-to-netcdf

I propose adopting the h5netcdf package: https://github.com/h5netcdf/h5netcdf for data loading and saving.

This would mean that all our data loading and writing commands will become

# data writing
self.dset.to_netcdf("filename.hdf5", engine="h5netcdf", invalid_netcdf=True) #invalid =True is only required when using non-supported datatypes such as complex numbers
xr.load_dataset("filename.hdf5", engine="h5netcdf")

The changes are minimal, but it would introduce a backward-compatibility breaking change, we could easily support still allowing the loading of all datasets using a try except statement.