Fixed error handling in geo ip lookup closes #2011

Mind taking a look at this @aranhoide?
OK, IIUC this fixes the problem of a bad masquerade being reported as good _as long as there are any reachable masquerades_.  If no masquerade can be reached when this is called, we'll still return an arbitrary one.  This seems unlikely unless (i) we are disconnected or (ii) all our masquerade providers have stopped working.  In the case of (ii) we have bigger problems than this being misreported, I guess.  Not to hold this PR for too long, I'll assume that in the case of (i) this causes no problem in practice.