[DOC] Fix lambda syntax for boolean queries in README.markdown

Closes #478
[TASKS] Fixed incorrect Rake task descriptions
[FIX] Use `MyModel.count`, not `MyModel.all.count` in the Rake import task

Previously, all records had to be loaded into memory (errr),
better to use the `Model.count` method

Closes #471
Improved the elapsed time reporting in the Rake task

Closes #480
[FIX] Remove `@options.delete` in Tire::Search::Search#to_hash so the call is not destructive

Closes #460.
Added the ability to define default values for Tire::Model::Persistence as lambdas

Now, it's possible to do:

    class MyModel
      include Tire::Model::Persistence

      property :created_at, :default => lambda { Time.now }
    end

Note though, that the lambda is evaluated when you create the object, not when you access the property.

Closes #459
Added `@search.results.max_score`

Closes #428.
Changed the URI escape/unescape compatibility patch to not require Rack

Originally by @joshreed, cleanup by @karmi.

Closes #384.
Removed unneccesary .gitignore entry, added "tmp"

Use "tmp" or "scratch" folders for things you wanna keep along the project,
but not version them.
[FIX] Added the ability to use the full DSL in filter facets

Previously, the `filter` facet type in Tire's DSL had the `terms` filter hardcoded.

With this patch, it's possible to use [any DSL method](https://github.com/karmi/tire/blob/master/lib/tire/search/facet.rb)
for the facet declaration.

See <http://www.elasticsearch.org/guide/reference/api/search/facets/filter-facet.html> for documentation.

Closes #425.
Add optional argument to all `to_json` methods as a defense against ActiveSupport

ActiveSupport, in many cases, calls `to_json` methods with arguments.

This patch adds optional argument to all `to_json` methods to guard against that.
Add `:wrapper` option to Index#retrieve

Allows finders and other users of retrieve to set wrappers safely
without race conditions due to the use of a global wrapper variable.
Pass `:wrapper` option to search and retrieve from finders

Using the :wrapper option avoids thread-safety issues with the global
wrapper config variable. In a threaded environment this would manifest
with searches occasionally being wrapped with the wrong model class.

Closes #453
Support complex hash options for the `term` query

Example Query:

``` ruby
Tire.search(@@index_name) do
  query do
    boolean do
      should do
        term :level, { value: "high",   boost: 3}
      end
    end
  end
end
```

More information about this can be found in https://github.com/karmi/tire/issues/422 where there is more example code.

The resulting JSON output of the above is:

``` json
{
  "query": {
    "bool": {
      "should": [{
        "term": {
          "level": {
            "value": "high",
            "boost": 3
          }
        }
      }]
    }
  }
}
```

This does not break any other behaviour.

Closes #422, closes #423.
Allow passing Hash-like objects to `terms` query as well
[FIX] [#453] Changed Hash syntax to be Ruby 1.8 compatible in Tire::Model::Persistence::Finders

Fixes #453.
Added the ability to pass arguments to the `all` query

See <http://www.elasticsearch.org/guide/reference/query-dsl/match-all-query.html>

Closes #421.
Exit with an error in the Rake import task when the index as not created in elasticsearch

Previously, when the index could not be created due to eg. error in mapping,
it was silently ignored and data were still indexed (with dynamic mapping).

This was a source of hard-to-pin-down errors. When there's an error while
creating the index, the Rake task will exit(1) and print the HTTP response, now.

Closes #392
Changed, that "edge" version of Tire is used in the Rails application template
[FIX] Added, that a warning is displayed when the index cannot be created on class load

Note, though, that for most production settings, it does _not_ make sense to rely
on automatic index creation. Create your indices properly, in advance,
in a controlled manner.

Closes #293