Aggregations: Added getProperty method to Aggregations

This allows arbitrary properties to be retrieved from an aggregation tree. The property is specified using the same syntax as the
order parameter in the terms aggregation. If a property path contians a multi-bucket aggregation the property values from each bucket will be returned in an array.
I wonder if it would make sense to wrap the result for a `SingleBucketAggregation` in an array with only one entry. This would make it easier to process the result of `getProperty` in case the underlying aggregation type changes. Here is an example of what I mean:

https://github.com/brwe/elasticsearch/commit/1cd7aaeec0b87c68bed80b745af6633693660c17

In the test, if I had to process the result of `getProperty()` I would have to distinguish if the second level aggregation is single or multi buckets aggregation. If single bucket aggregation would wrap it in an array then the dimension of the result array would only depend on the depth of the aggregation and not on the aggregation type. This would make post processing more convenient.

I think this is a general inconsistency with aggregations, it also goes for json output. Also, I think `SingleBucketAggregations` should have a `getBuckets()` method which would then only return one bucket. Maybe this is worth a separate issue?