[API] Added singular version of the `termvectors` API for compability with older versions

Fixes: 025faf2
[API] Migrated the utilities from the Elasticsearch repository

Related: elasticsearch/elasticsearch#8606
[API] Fixed the incorrect endpoint for the `termvector` API method
[DSL] Initial commit to "elasticsearch-dsl" Rubygem
[DSL] Updated .gemspec and added Rake tasks
[DSL] Added the test helper
[DSL] Added the main DSL module
[DSL] Added the `BaseComponent` module for the DSL
[DSL] Added the initial Query implementation

* `Search` class with a `query` method
* Query classes for initial queries (match, range, term)
* Unit tests for all classes
* Basic integration test for the `match` query (skeleton for others)
[DSL] Added documentation for the current codebase
[DSL] Added the initial Filter implementation
[DSL] Added the `call` method to the BaseComponent
[DSL] Added BaseAggregationComponent with common logic for aggregation classes
[DSL] Added the Aggregation class to wrap aggregations in search definitions
[DSL] Added the "Terms" and "Range" aggregations
[DSL] 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'
[DSL] Added a sorting integration
[DSL] Added the support for search definition options (from/size, version, explain, ...)
[DSL] Added the support for search suggestions

    search do
      suggest :title, text: 'th', completion: { field: 'title_suggest' }
    end

See: http://www.elasticsearch.org/blog/you-complete-me/