Regridding is very slow for large grids

Regridding involving large grids (e.g. 4200 x 43200) is very slow - sometimes taking hours.

Much of this problem is the time taken to calculate the weights (which is done non-laziliy), and to update the source and destination masks based on the weights' values.

This will be remedied in an upcoming PR.