fix corner cases in handling of language key for location data
fix corner cases in handling of language key for location data

This fixes several problems in add_to_geoloc_node():

 - A NULL pointer would be dereferenced if the language value was one of the
   types checked for, but not a string.
 - An assertion would fail if the language value wasn't a string or one of the
   other types checked for.
 - Coverity flagged a possible dereference of the mapping pointer when it was
   NULL, but in practice we'd already returned in that case. Hopefully the
   code should be less confusing for both Coverity and humans now.

jku/telepathy-gabble,Ziemin/telepathy-gabble,mlundblad/telepathy-gabble,jku/telepathy-gabble,jku/telepathy-gabble,mlundblad/telepathy-gabble,Ziemin/telepathy-gabble,Ziemin/telepathy-gabble,Ziemin/telepathy-gabble,mlundblad/telepathy-gabble