smurf: Allow a non-FFT method to be used for calculating NOI model

When using smalll values for noi.box_size, a large fraction of samples
are flagged because of problems taking FFT of small lengths of data. To
avoid this, the noi.box_type parameter can now be set to a non-zero
value, which causes the noise value at a residual to be calculated as the
mean of variance of the neighbouring residuals, rather than by using an
FFT to get the power spectrum. This prevents data being rejected, and
allows the noise estimate for a bolometer to vary continuously with time,
unlike the FFT-method that creates block of identical noise values.

The NOI model is only used for weighting the samples when they are
coadded into a map. The map seems not to be particularly sensitive to the
precise way these weights are derived.