[TEST] Fixed Ruby 1.8 incompatible Hash syntax in Tire::Search::Query

Related: #648
Cc: @moktin
[TEST] Do not run percolator tests on TravisCI

Related: karmi/tire@7530ad5
Use `Thread.current` in the Curb client to prevent `Curl::Err::MultiBadEasyHandle` errors

A temporary fix based on <https://github.com/celluloid/celluloid/wiki/Thread-safety-notes>

See eg. <http://blog.carbonfive.com/2011/10/11/a-modern-guide-to-threads/> for info about threads in Ruby

Example code:

    $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)

    require 'tire'
    require 'tire/http/clients/curb'

    Tire.configure { client Tire::HTTP::Client::Curb }

    class Book
      include Tire::Model::Persistence
      property :title
    end

    Book.tire.index.delete

    Book.create title: 'Foo'
    Book.create title: 'Bar'

    Book.tire.index.refresh

    threads = []

    %w| foo bar |.each do |q|
      threads << Thread.new do
        p Book.search( q ).results.to_a
        puts '-----'
      end
    end

    threads.each { |t| t.join() }

Closes #144
[#655] Added `included` tracking to Model::Search
[#655] Extracted import Rake task into `import:all` and `import:model`
Refactored the `import:model` and `import:all` Rake tasks

Related: #656, #652

Closes #655
Removed the manual Tire integration tracking for models

The `dependents` tracking in `included` isn't really needed. We can always ask:

    Article.respond_to?(:tire)

Or:

    Article.included_modules.include?(Tire::Model::Search)

Revert "[#655] Added `included` tracking to Model::Search" (6eac80f34126fb6c32d687d06840978adf243266)

Related: #655, #652
CC: @jwaldrip
Refactored the `import:all` task to not use the manual Tire integration tracking

* This builds on changes in d467fc5
* Uses the `classify` and `constantize` from ActiveSupport
* Skip any model without Tire integration

Related: #655, #652
[#656] Added adapter specific importing for different ORMs/OHMs/ODMs/OxMs
[#656] Refactored model-specific importing into a set of strategies

* Cleaned up the code, use `Tire::Import::Strategy` to wrap strategy-choosing logic
* Implemented each strategy as a class with the `import` method
* Used strategy in `MyModel.import`
* Updated documentation

Related: #656, #652, #272, #576, #530

Closes #656
Release 0.5.6
Allow options for the `terms` query

Closes: #643
[FIX] Added missing require of ANSI::Progressbar in tasks

Closes #688
Release 0.5.7
[PERSISTENCE] Model::Persistence uses "string" as the default mapping type
[PERSISTENCE] Model::Persistence returns true/false for #save and #destroy operations

Previously, the Tire::Model::Persistence models returned the object itself after calling
`save` and `destroy` methods, making it cumbersome or impossible to do common routines such as:

    @article = Article.new params[:article]

    if @article.save
      redirect_to @article, :notice => "Article was successfully created."
    else
      flash[:error] = "There was an error when saving the article, please try again."
      render :action => "new"
    end

The #save and #destroy methods now return `true` for successful operations,
`false` for unsuccesful ones, making it possible to intercept common
failures such as trying to index a document with date in incorrect format,
trying to index a document with unmapped property, etc.