GeoShape Precision

The `geo_shape` precision could be only set via `tree_levels` so far. A new option `precision` now allows to set the levels of the underlying tree structures to be set by distances like `50m`. The default unit for this option is `meters`. In case of both options, `tree_levels` and `precision`, are set the greater depth of these values will be taken into account.

## Example
```json
curl -XPUT 'http://127.0.0.1:9200/myindex/' -d '{
    "mappings" : {
        "type1": {
            "dynamic": "false",
            "properties": {
                "location" : {
                    "type" : "geo_shape",
                    "geohash" : "true",
                    "store" : "yes",
                    "precision":"50m"
                }
            }
        }
    }
}'
```

## Changes
- GeoUtils defines the [WGS84](http://en.wikipedia.org/wiki/WGS84) reference ellipsoid of earth
- DistanceUnits refer to a more precise definition of earth circumference
- DistanceUnits for inch, yard and meter have been defined
- Set default levels in GeoShapeFieldMapper to 50m precision

Closes #2803