[SEARCH] Added a more complex search query in the SearchesController#show method

Previously, we have been searching gems based on their names only.

With the new, more complex mapping defined in the preceding commit, we can add a more complex search query as well.

We're using a boolean query, keeping the original match prefix query and adding the `query_string` query,
which uses the Lucene query syntax (field specifation, boolean operators, wildcards,
fuzzy search, range and proximity searches, grouping, etc).

See:

* http://www.elasticsearch.org/guide/reference/query-dsl/query-string-query.html
* http://lucene.apache.org/core/3_6_1/queryparsersyntax.html
[SEARCH] Added a `rescue_from` failed search requests due to incorrect query syntax

While we exposed the most powerful way of searching to the user (the Lucene query syntax),
it can quite easily lead to application errors when users enter incorrect queries, such as `bang!` or `foo[]`.

Since this is an error on the user's part, and not the application part, we should display a friendly
error explanation and give the user a chance to correct the query.
[SEARCH] Added a "user enters a search query with incorrect syntax" Cucumber scenario

Since the application uses Cucumber scenarios for validating its proper operation,
a scenario with user entering an incorrect search query ("bang!") has been added.
[SEARCH] Added the "Search Advanced" Cucumber feature

With the complex queries now available to users of the application, we should add
acceptance tests for the common scenarios.

We'll start with searching in summaries and descriptions (thanks to the `_all` field
automatically generated by elasticsearch).

Use this command to run all search features:

    $ bundle exec cucumber --tag @search

Use this command to run the "advanced search" feature:

    $ bundle exec cucumber features/search_advanced.feature
[SEARCH] Added a Cucumber scenario for searching in gem authors

    Given we now have a more complex search available
    When we search in the `author` field
    We should get some relevant results

* Added a "Searching in authors" scenario
* Added a step for creating more complex Rubygem records into the `gem_steps.rb` definition file

Use this command to run the scenario:

    $ bundle exec cucumber --name "Searching in authors" features/search_advanced.feature
[SEARCH] Refactored the search steps to a higher-level nested step "I search for ..."

Instead of repeating the low-level steps:

    When I go to the homepage
    And I fill in "query" with "<query>"
    And I press "Search"

over and over in our scenarios, we will abstract these steps to a single step:

    When I search for "<query>"

The obvious benefit is less code duplication and more readable steps.
[SEARCH] Added "search tips" sliding panel at the search results page

* Added a second form with `query` input, to duplicate the query for easier correction/change
  at the results page

* Added a HTML partial with concrete, interactive examples of queries possible with Lucene,
  hidden by default

* Added a link and JavaScript code to toggle the sliding panel with search examples

* Added CSS styling for the new elements, added a "help.png" icon from the FamFamFam suite
[SEARCH] Prevent indexing errors on Rubygem records without a version
[SEARCH] Added starting of "elasticsearch" in the Travis CI configuration
[SEARCH] Added information about installing Elasticsearch into "Contribution Guidelines"
[SEARCH] Handle search engine being not available in user-friendly way
[SEARCH] Changed, that errors when indexing to Elasticsearch are rescued

Previously, when an error occurred while saving the model into the Elasticsearch index,
the whole operation failed and an Exception has been raised.

This patch adds a `rescue` clause which logs the exception and swallows it.