avoid KeyError while filtering at all costs

There was still a problem with bad service URIs (like service://invalid)
for example. It should now be impossible for
is_a_reachable_host_uri_or_known_uri to raise a KeyError that transpires
to the user.

A check for key existence is used instead of the more pythonic
`try..except` in order to avoid too deep nesting.