_geo_distance sort: allow many to many geo point distance

Add computation of disyance to many geo points. Example request:

```
{
  "sort": [
    {
      "_geo_distance": {
        "location": [
          {
            "lat":1.2,
            "lon":3
          },
          {
             "lat":1.2,
            "lon":3
          }
        ],
        "order": "desc",
        "unit": "km",
        "sort_mode": "max"
      }
    }
  ]
}
```

closes #3926
I changed this now in commit "clean up parsing: don't copy structure and parse twice".

The problem was that `GeoUtils.parseGeoPoint(..)` expects the opening bracket `[` in case the geo point is in the format `[number, number]` but the moment the array content is passed to the parse method this bracket was already read. I now added a special case parsing for this format. 
Let me know if this is cleaner.