smurf: Allow low frequencies to be removed from map changes

The old experimental "ast.gaussbg" parameter has been replaced by
"ast.dilt_diff".

If ast.filt_diff is non-zero, the map created at the end of each
iteration is modified by removing any large scale structures that have
been introduced by the iteration. Such structures are a natural outcome
of the iterative process and often take the form of ripples on the scale
of the FLT filter size that get stronger with each iteration.

If "ast.filt_diff" is non-zero it gives the size of the largest features
to be retained, in arc-sconds. At the end of each iteration the
difference is taken between the new map and the previous map. This
difference is filtered using a sharp-edged high-pass filter, of size
specified by "ast.filt_diff". The remaining high frequencies (i.e. small
structures that have been introduced by the new iteration) are added back
onto the map created by the previous iteration. This modified map is then
used, instead of the original map, to define the AST model.
smurf: Allow an image to be subtracted from the map at the end of each iteration.

Quite often, particularly when not using an AST mask, the convergence of
the iterative process grinds to a halt so that the mean normalised map
change between iterations settles down to a more or less fixed value,
rather than falling down to the value specified by the "maptol" config
parameter. If an AST mask is used, this can be caused by the edges of the
mask "shimmering" between iterations, but also it can be caused by a
fixed "error map" being added onto the map by each iteration. That is,
the difference between succesive maps looks pretty much constant, and
usually looks like a set of smooth ripples on the scale of the FLT
filter. A consequence of this is that equivalent ripples in the map
itself become stronger and stronger with each further iteration.

This commit introduces several experimental features that allow this
tendency to be combatted:

1) The new config parameter "epsin" allows a 2D NDF to be supplied which
will be subtracted form the map at tehe end of each iteration.

2) The new config parameter "epsout" allows a 2D NDF to be created which
holds the median of the map differences over the final three iterations.

3) The new config parameter "maptol_rate" allows the iterative loop to be
terminated if the mean normalised change in the map seems to settle down
to a fixed value.

4) The new output ADAM parameter "RATE_LIMITED" holds a boolean flag
indicating if the iterative loop was terminated because of the
"maptol_rate" limit.

An example of how these could be used is that makemap is invoked
initially with "epsout" and "maptol_rate" specified. So if and when the
convergence gets stuck, the iterative loop will terminate and dump the
change between maps to the epsout NDF. A second invocation of makemap
could then be made, specifying this new NDF as the value for "epsin".