Remove Tire, Add custom search client

Client is based on official elasticsearch gem
Bulk serialize indexed models

Extracts serialization from Sequel::Model descendant classes to separate
serializer classes.

Removed Sequel pagination compatibility extension because it will not be
required any more since we don't use Tire.
Support for Elasticsearch in specs
Extract Serializer and specs to app/serializers

Separate concerns from persistance (Sequel::Model)

Also added index and delete methods to SearchClient. Refactored
interactors to use proper interface.
Remove references to Tire and comments
Remove Tariff indexer

Refactor reindexing code
Make searching work with new Elasticsearch client
FuzzySearch uses Elasticsearch Multi-Query API

Reduces HTTP requests from 5 to 1, searches happen much faster.
Tag specs dependent on Elasticsearch

These are integration level specs, they require Elasticsearch test cluster
to be up in order to pass
Add a simple Elasticsearch indexing Sequel plugin

For indexable models
Drop elasticsearch search tag

Spawn server for each spec run
Refresh search index after each index/delete operation

Because specs require instant visibility of indexed content unlike
development/production.

Added more configuration options on TradeTariffBackend.
Fix GoodsNomenclature factory and related specs
Pass command to search_options on test environment
Make sure elasticsearh binary is in PATH
Remove SearchReference interactors

We now use simple callbacks with our own Sequel plugin elasticsearch
Make sure search does not break with malformed query

Uses simple match Elasticsearch query instead of query_string which
supports custom syntax which is not necessary and can result in an
exception sometimes
Raise QueryException if one of search queries contains an error key
Extract #search_index_for method, it is being used more broadly

Added additional specs