Added the `call` method to the BaseComponent
Added BaseAggregationComponent with common logic for aggregation classes
Added the Aggregation class to wrap aggregations in search definitions
Added the "Terms" and "Range" aggregations
Added the aggregations integration into the DSL

    response = client.search index: 'test', body: search {
      aggregation :tags do
        terms field: 'tags'
      end
    }.to_hash

    response['aggregations']['tags']['buckets'][0]['key']
    # => 'one'