Added a class to extract the closest object

The tests are green: https://ci.openquake.org/job/zdevel_oq-hazardlib/99
For each site, I should find the closest site parameters. So I should do something like that,
being sm_lons and sm_lats the lons and lats of the site model records:

```python
for site in sites:
   index = min_distance(sm_lons, sm_lats, sm_depths, site.lon, site.lat, site.depth, indices=True)
   # index of the closest site model record, then extract the parameters
  sm_z1pt0[index], sm_z2pt5[index]...
```

but then _prepare_coords would be called N times for the same coordinates, being N the number of sites. I cannot find a smarter way of doing this (but I may be just unfamiliar with hazardlib)