[RAILS] Added the "therubyracer" gem into the Gemile in the "basic" template

On Linux, the application fails with "no js library" otherwise.

Closes #44
Closes #38
[RAILS] Added the loading Rails logger integration in the "pretty" template
[RAILS] Added disabling the asset logging integration into the "pretty" template
[RAILS] Updated the automatic Elasticsearch installation to 1.0.1
[RAILS] Replace the Elasticsearch client with plain Net::HTTP
[RAILS] Allowed skipping the automatic Elasticsearch installation

Set RAILS_NO_ES_INSTALL=y environment variable to skip the Elasticsearch installation in the "pretty" template
[RAILS] Re-factored and re-designed the "expert" template

* The Elasticsearch integration is refactored into the `Searchable` concern
* A complex mapping for the index is defined
* A custom serialization is defined in `Article#as_indexed_json`
* The `search` method is amended with facets and suggestions
* A [Sidekiq](http://sidekiq.org) worker for handling index updates in background is added
* A custom `SearchController` with associated view is added
* A Rails initializer is added to customize the Elasticsearch client configuration
* Seed script and example data from New York Times is added (clears Sidekiq queue as well)
* File with Rake tasks for Elasticsearch is added, `rake elasticsearch:import:model` is used to import the data
[RAILS] Allowed to skip `rails server` with the RAILS_NO_SERVER_START environment variable
[RAILS] Added displaying error count in the import Rake task

Prior to this pull-request, these errors would be silently ignored and users might assume that the task had completed successfully. Now the number of errors is printed:

    $ bundle exec rake environment elasticsearch:import:model CLASS=User
    [IMPORT] 4 errors occurred
    [IMPORT] Done

It would be nice to have more details about the errors, but this is an improvement over failing silently.

Closes #48
[MODEL] Small typo fix in the README

Thanks to @bobrenjc93 for the catch!

Closes #26
[MODEL] Added callback in the `activerecord_associations.rb` example
[RAILS] Add the description for the `03-expert.rb` template into the README
[RAILS] Added links to the Rails application templates in the README
[RAILS] Removed old TODOs
[MODEL] Added `client.cluster.health wait_for_status: 'yellow'` to prevent "no shard available" errors on CI
[RAILS] Fixed the 01 and 02 templates on Rails 3.2.x

Related: #73
[TESTS] Added dependency on "minitest" to prevent test failures

All the thanks goes to https://github.com/theforeman/smart-proxy/pull/84
Fixed, that models with custom `as_indexed_json` method are properly serialized during update

Previously, the `update_document` method simply intercepted the changes to the model, via the
`@__changed_attributes` variable, and used these directly.

This caused models with a custom serialization method to be incorrectly serialized, namely
unwanted attributes were added.

This patch looks for `as_indexed_json` defined on the model, and when it finds it,
filters the changed attributes through the keys.

Closes #75

Related:

* #59
* #57
* #52
* #40
* #37
* #5
[TEST] Added an integration test for combining pagination with scopes

See: http://guides.rubyonrails.org/active_record_querying.html#scopes

Related: #16
Fixed the incorrect behaviour of limit() and page() methods

Previously:

  When klass.default_per_page is 25,

  response.limit(35).page(3)
  => :size is back to 25, :from is 25 * 2

  response.page(3).limit(35)
  => :size is 35, but :from is 25 * 2

After this patch:

  response.limit(35).page(3)
  => :size is 35, :from is 35 * 2

  response.page(3).limit(35)
  => :size is 35, :from is 35 * 2

Closes #42

Related: #72, #55