[DOC] Added notes regarding running the test suite to the README

Related: #122
[DOC] Added information about running a separate test cluster to the README

Closes #122
[MODEL] Changed, that `update_document` is converts Hash keys to strings before comparing them

When users would define a custom `as_indexed_json` serialization, which
emits key as Strings, the `update_document` method would fail to process them correctly.

So, for a code like this:

    class Article < ActiveRecord::Base
      include Elasticsearch::Model
      include Elasticsearch::Model::Callbacks

      def as_indexed_json(options = {})
        { description: self.description }
      end
    end

when the record was updated:

    article.update_attributes(description: 'new description')

the change would never reach Elasticsearch.

As suggested by @FUT in #140, the code in `update_document` method would
defensively convert all keys into Strings before comparing them.

Tests were updated accordingly.

Closes #140

Related: #85, #118
[MODEL] Changed `update_document`, so attributes are fetched from `as_indexed_json`

Example of the problem:

    book = Book.create(title: "My book")
    book.title = "My book 2"

    book.save
    # Elasticsearch::Transport::Transport::Errors::BadRequest:
    #       [400] {"error":"MapperParsingException[failed to parse [title]]; nested: ElasticsearchIllegalArgumentException[unknown property [ru]]; ","status":400}

    book.instance_variable_get(:@__changed_attributes) # => {title: {ru: "My book 2"}}
    book.as_indexed_json # => {title: "My book 2}

Related: #166, #140
[MODEL] Clean up getting attributes from `as_indexed_json` in `update_document`

Basically, flipping the relationship here should be enough: select based on
`changed_attributes` keys from the `as_indexed_json` Hash, not vice versa.

Related: #166
update document should update with hash from as_indexed_json which could also contain derived attributes.