Infer information from package metadata and relax validation

At least for me personally, this is a bit _too_ Pythonic for my taste; I'd be more comfortable with declaring `contact_point = None` before the loop and then doing:

```python
if contact_point == None:
  raise KeyError(required_field)
else:
  return contact _point
```

It's not a big deal, but I think it's a bit easier to read because it cues the reader about the purpose of the loop.