[#496] [FIX] Fix bug in "step-by-step" building of query in Tire DSL
Use single quotes in `to_curl` commands to prevent shell expansion
Simplify the `pretty` URL parameter for `to_curl` output
Added accessor for Tire::Search::Query#value
Added a `match` query type

The `match` query is the most convenient way of exposing a search feature to end-users.

It automatically matches field analyzer with query analyzer, builds a corresponding query,
allows for "as you type" search with the `phrase_prefix` option, etc.

Tire exposes a single DSL method to use the query:

    Tire.search 'people' do
      query do
        match :last_name, 'Smith'
      end
    end

To search in multiple fields (with the `multi_match` query), just use a list of fields as the first argument:

    Tire.search 'people' do
      query do
        match [:first_name, :last_name], 'John'
      end
    end

You may want to give different fields specific boost with the caret notation:

    Tire.search 'people' do
      query do
        match ['first_name', 'last_name^10'], 'John'
      end
    end

The `match` method can be invoked repeatedly, in which case Tire will build a `must` boolean query automatically,
allowing you to quickly create "compound" queries working across multiple field types.

So, the following query:

    Tire.search 'people' do
      query do
        match :last_name, 'John'
        match :age, 30
        match :gender, 'male'
      end
    end

is equivalent to this explicit boolean query:

    Tire.search 'people' do
      query do
        boolean do
          must { match :last_name, 'John' }
          must { match :age, 30           }
          must { match :gender, 'male'    }
        end
      end
    end

See:

* http://www.elasticsearch.org/guide/reference/query-dsl/match-query.html
* http://www.elasticsearch.org/guide/reference/query-dsl/multi-match-query.html
[TEST] Added unit tests for the `match` query type
Extracted the magic number value for default `per_page` in Tire::Results::Pagination
[#463] Added test for the bug where you have to include `per_page` in model searches

If you don't specify a `per_page` option then the `page` option has no effect.
[#463] Use the Tire::Results::Pagination::default_per_page value in model search integration

Previously, without a `per_page` option, the `page` option was quietly ignored,
see failing test in karmi/tire@547feca.

With this change, you can pass just the `page` to the search:

    Article.search params[:q], :page => params[:page]

Closes #463.
[#463] [FIX] Add proper mock for unit test for model searches
[DOC] Added the .yardopts for YARD [http://yardoc.org]
[PERSISTENCE] Removed unneccessary method Tire::Model::Persistence::__search_without_persistence
[TEST] Make test for limiting model searches to index/name use literal values
[TEST] Clean up order of tests in the ActiveRecord integration suite
[TEST] Cleaned up the test suite for persistent models (multiple types in index)
[MULTISEARCH] Added support for error responses in Tire::Results::Collection

Mainly needed for multisearch
[MULTISEARCH] Added support for multisearch (_msearch)

See

* http://www.elasticsearch.org/guide/reference/api/multi-search.html
* http://www.spacevatican.org/2012/6/12/using-multisearch-with-tire/
[MULTISEARCH] Added the `Tire.multi_search` DSL method
[MULTISEARCH] Added support for multi-search in the ActiveModel integration
[MULTISEARCH] Added support for multi-search into Tire::Model::Persistence