Various changes for vet and lint

Should be style only, i.e. no behavioral changes apart form the two vet fixes. The one borderline behavioral change is in upnp where we used []*IGD etc everywhere and I think it's simpler and less worrying ("hmm. pointer. Is something changing these after the fact?") with just a plain []IGD.

The "various style fixes" commit extracts some else clauses that are after returns, so viewing the diff without whitespace diffing makes more sense.