smurf: Mask the AST map in smf_calcmodel_ast when removing an initial sky

The old way masked by placing VAL__BADD values into the map. The new way
uses map quality to mask.
smurf:: Enable skyloop to do map-based despiking

SKYLOOP was not doing any map-based despiking because the despiking was
not being done on the first iteration of makemap due to the NOI model not
being available. But in SKYLOOP every iteration is the first iteration as
far as makemap is converned, and so no despiking was being done. In fact
when running smakemap from within SKYLOOP, the NOI model *is* available
on the first iteration because it will have been imported from a disk
file created by an earlier invocation of makemap. The problem is just in
the way that smf_calcmodel_ast determines whether NOI values are
available or not. So I've changed this to use the first value in the NOI
model as the flag - if this value is 1.0 (the initial value before any
NOI values have been calculated), then no despiking is done. If the first
NOI value is not 1.0, then this is used as a flag that NOI values are
available and despiking is therefore done.
smurf: Correct creation of mask from initial sky map

When creating a mask from a quality array imported from an initial
sky NDF, only check the quality bit relevant to the mask being created.
smurf: Revert commit 5dc4ec370eb8b991e6

Rather than storing pre-calculated STEPTIME in the FITS headser, we
should be putting it in the SMURF extension.
smurf: Record used SCANVAL and STEPTIME in exported SMURF extension

This is so that sunsequent runs of makemap that import the exported data
can re-use the SCANVAL and STEPTIME values that were actually used.
smurf: Correct syntax for checking if a key is present in a dict