Core: Implement image gradient in z direction
The image gradient is currently only computed in the plane of the image, using FFT or real space methods. Ideally, we also want the gradient perpendicular to the image, since this might be used to resolve artefacts such as a shadow that moves across the image as a function of sample orientation. However, this can't easily be done using the FFT method, and many of the convolution kernels are non-trivial in 3 dimensions.