guice optimization
only under debug logging use the source provider to find the line number through stack trace elements, otherwise, its very expensive
Introducing Aggregations Module

Initial commit for the aggregation module. There are four main constructs for each aggregation:

 * aggregation - represents the outcome of the aggregation
 * aggregator - the request scope construct that computes the aggregation
 * aggregator factory - creates an aggregator of a specific type (can be configured for that type)
 * aggregator parser - parses the request xcontent and creates the appropriate aggregator factory

 There are two types of aggregations (and therefore, there are two types of aggregators):

  * Calc - an aggregation that computes counts/stats across a set of documents (eg. avg, sum, min, max,...)
  * Bucket - an aggregation that creates buckets over a set of documents, where each buckets effectively defines a set of documents (eg. terms, range, histogram, missing, filter, ...)

  The bucket aggregators can be seen as compound aggregators which can contain other aggregators. The aggregators contained in a bucket aggregator will be applied for each of the buckets that are created byt he bucket aggregator.
initial commit of the value source based implementation
second commit
third commit
cleanup & refactoring 1
cleanup & refactoring 2
cleanup & refactoring 3 - remove most of the date histogram classes and kept it minimal by reusing all the normal histogram constructs
- introducing numeric value source and value parser
- made aggregator search context aware
- api cleanup
introduced the field values context & factory
added nested aggregation support
cleanup & documentation
- added aggregations request builders
- fixed a stack overflow bug in FieldDataSource
- started to add tests for the aggregations
- added tests for the aggregations
- aggregation api cleanup
- added more aggregations tests
- added geo_distance aggregation tests
- cleanup
- added histogram aggregation tests
- fixed numeric calc stats
- cleanup values abstraction: got rid of FieldDataSource.Double and FieldDataSource.Long (using only FieldDataSource.Numeric now)