Made sure that we never throw IndexMissingException in indices query and filter

It could happen although we internally use IgnoreIndices.MISSING, due to MetaData#concreteIndices contract, which throws IndexMissingException anyway if all requested indices are missing.
In case all the indices specified in the query/filter are missing, we just execute the no_match query/filter, no need to throw any error.

Closes #3428
Replaced the synchronization method for enabling the realtime percolator from synchronized methods to use AtomicBoolean#compareAndSet instead.
Remove @TestLogging from percolator tests.
Add missing mappers to MapperBuilders.

 - completion
 - geo_point
 - geo_shape
 - parent
 - size
 - ttl

Close #4423
Add more information to IndexInput failures related to abusing closed input
Also wrap IndexInput if CFS is used
try and wait better for all mapping updates to be processes in test
Remove IndexFieldData.getHighestNumberOfSeenUniqueValues().

Closes #4426
Fixing debian init script to work on ubuntu LTS

sysctl parameters must be separated like `-q -w` instead of `-qw`
Add new `simple_query_string` query type

This adds support for Lucene's SimpleQueryParser by adding a new type
of query called the `simple_query_string`. The `simple_query_string`
query is designed to be able to parse human-entered queries without
throwing any exceptions.

Resolves #4159
refresh the mapping source directly into a compressed buffer
instead of building the mapping source, and then compressing it, we can generate it directly into a compressed buffer
properly support global transport compression with new bytes transport request optimization
randomize transport tcp compression on nodes
Print nice error in bin/elasticsearch if user needs to run maven

Before, people that cloned the repo and expected to be able to run
bin/elasticsearch would be met with an awful shell error: the shell
interprets Maven variables like ${project.build.finalName} as shell
variables yet can't handle names of the form ${x.y}. This commit
explicitly checks to make sure that Maven has done its substitutions
before continuing; if Maven hasn't been run, it gives a helpful error
message.

Fixes #2954.
A failure during the response construction could cause a Node Operation never to return
Add `queries` to XContent output of PercolateStats

The queries stats tracked but not exposed to the Rest API

Closes #4440
Skipping execution of remaining Deciders if one of them returns a Decision.NO.

Reordering execution of the different AllocationDeciders, so the cheapest get executed first.
Add trace logging to AllocationDeciders if decision is NO()
Added the `force_source` option to highlighting that enforces to use of the _source even if there are stored fields.
The percolator uses this option to deal with the fact that the MemoryIndex doesn't support stored fields,
this is possible b/c the _source of the document being percolated is always present.

Closes #4348
Fixed test bug
Aggregations: Ordinals-based string bucketing support.

When the ValuesSource has ordinals, terms ordinals are used as a cache key to
bucket ordinals. This can make terms aggregations on String terms significantly
faster.

Close #4350