Added support for passing partial document to `Index#update`

    Tire.index('articles-with-tags') do
      update( 'article', '1', :doc => { :title => 'One UPDATED' } )
    end

See <http://www.elasticsearch.org/guide/reference/api/update.html>

Requires Elasticsearch version [0.20](http://www.elasticsearch.org/download/2012/12/07/0.20.0.html) or higher.

Fixes #366.
Added `nested` query support

* Added the `nested` implementation for API/DSL
* Added unit and integration tests

Closes #475
Added examples of `nested` query support into `tire-dsl.rb`
[#475] Cleaned up and simplified the tests for `nested` query

* Fix whitespace errors
* Proper mapping in the `NestedQueryTest`
* Simpler queries in tests
* Better names for test cases, reorganize
* Remove redundant tests
[#475] Refactored the documentation for `nested` query in `tire-dsl.rb`
Release 0.5.3
[FIX] Escape single quotes in `to_curl` serialization

When your search query contains a single quote:

    s = Tire.search 'articles' do
      query do
        string "l'amour"
      end
    end

the `to_curl` command produces an invalid JSON payload:

    curl -X GET 'http://localhost:9200/articles/_search?pretty' -d '{
      "query":{
        "query_string":{
          "query":"l'amour"
        }
      }}'

With this patch, the single quote in the query is replaced with a Unicode escape sequence:

curl -X GET 'http://localhost:9200/articles/_search?pretty' -d '{
  "query":{
    "query_string":{
      "query":"l\u0027amour"
    }
  }}'

Closes #561
Added more examples for the `date_histogram` facet in the integration tests
[FIX] Fix broken unit tests for facets

Fixes karmi/tire@5a28781
Added JRuby compatibility

* Added skipping MRI/YARV gems on JRuby in .gemspec
* Added JRuby specific gems into Gemfile
* Added skipping Curb tests on JRuby
* Added `jruby-19mode` into Travis-CI matrix

Closes #555
Minor cleanup of JRuby compatibility

* Formatting, whitespace errors
* Gem dependency configurations
Updated Travis-CI configuration

* Changed starting Elasticsearch to the `services` support
* Added Redis and MongoDB services for integration tests
Added proper `as_json` support for `Results::Collection` and `Results::Item` classes

Previously, the `Collection` and `Item` classes were missing proper `as_json`
serialization support. With this patch, their `as_json` methods are now
ActiveSupport compatible, allowing to eg. expose the results in a Rails controller:

    def search
      @articles = Article.search do ... end
      respond_to do |format|
        format.html { render :action => "index" }
        format.json { render json: @articles.as_json(only: ['id', 'title']) }
      end
    end

Closes #527
Added extracting the `routing` information in the `Index#store` method

    Tire.index('myindex').store( {:id => 1, :title => 'Test'}, {:routing => 'abc'} )

Closes #512
Refactored the `update_index` method for search and persistence integration

Previously, both the ActiveModel search integration and the Persistence support
relied on shared `update_index` implementation.

This has been confusing, and also a source of bugs in Rails
applications using "single table inheritance" or
["single collection"](http://mongomapper.com/documentation/plugins/single-collection-inheritance.html)
in MongoMapper applications, which both rely on the `_type` property.

The `update_index` method has been extracted to the `Tire::Model::Persistence::Storage` module,
and the offending code has been removed from the ActiveModel integration.

Closes #477, fixes #80 and #394.
[#558] Cast collection properties as empty Array by default

Previously, omitting value for casted collection resulted in the property being `nil`.

Now, with a class definition like this:

    class Article
      include Tire::Model::Persistence

      # ...
      property :comments, :class => [Comment]
    end

the `comments` property is by default casted as an empty Array:

    article = Article.new :title => 'Test'
    article.comments
    # => []

Closes #558
Merge remote-tracking branch 'upstream/master'