added a district neighbors thing, and refactors a blob

pulled a big blob of code from vdswim_impute call for when I pull down
wim sites and stack them up.  I did that so that I don't have a
reallyreally ugly loop in vdswim_impute.  also added a different call
for getting all the wim sites in a district, because I'm fed up with
look at the "closest neighbors" when those are empty or useless.