smurf: Fix memory leak when using initial sky option in makemap

This bug could also cause a seg fault to occur if an error has occurred
previously.
smurf: Fix skyloop bug that caused uncleaned data to be included in map

This bug caused the second and subsequent invocations of makemap to
use uncleaned data to make the map.
smurf: Fix issue with skyloop and ast.skip

Previously, the second and subsequent invocations of makemap were doing a
number of real iterations if ast.skip was supplied greater than zero.
Each invocation of makemap (except maye the first) now, correctly, does only
one iteration.
smurf: Fix bug that cuased first contchunk to get double weight

Before e93e76879, smf_iteratemap used the returned map array to hold the
first chunk, and allocated memory for any remaining chunks. smf_addmap1
used this fact to identify when the first chunk was being processed [OK -
I know - a very bad idea]. Since e93e76879, the first chunk is now stored
in allocated memory just like all other chunks. This caused smf_addmap1
to treat the first chunk like all the other chunks, ignoring the fact
that the first chunk is already present in the supplied arrays. The
upshot of this was that the first chunk got included twice in the
returned map, effectively giving it double weight.

smf_addmap1 now has an extra parameter to indicate if the first conchunk
is being processed.