Add retries and logging to GeoNames requests

This addresses #7705. GeoNames name searches failed with URLError when
a bad connection or url interfered with openurl. This allows retries
in the case of short-term issues and handles total failure by logging
and passing to the next geocoder.
Should this always write a log message for every call to this function?