Removed bashism in bin/elasticsearch

Using == in an if-statement works in bash but not in dash (used in ubuntu)
Replacing == with = results in strictl POSIX compliance.
Need to make sure we always end up with a Cell, even if it's null.

Fixes #4544.
use the correct d option in getopt instead of the removed f
update travis config
Start the task timeout checking *after* adding it to the execution queue.

This prevents missing very short timeouts which fire before the calling thread had the chance to add the task to the queue and are therefore ignored. This is mostly of importance for testing where we explicitly want tasks to timeout and set it to a very low value.
Use BINARY doc values instead of SORTED_SET doc values to store numeric data.

Although SORTED_SET doc values make things like terms aggregations very fast
thanks to the use of ordinals, ordinals are usually not that useful on numeric
data. We are more interested in the values themselves in order to be able to
compute sums, averages, etc. on these values. However, SORTED_SET is quite slow
at accessing values, so BINARY doc values are better suited at storing numeric
data.

floats and doubles are encoded without compression with little-endian byte order
(so that it may be optimizable through sun.misc.Unsafe in the future given that
most computers nowadays use the little-endian byte order) and byte, short, int,
and long are encoded using vLong encoding: they first encode the minimum value
using zig-zag encoding (so that negative values become positive) and then deltas
between successive values.

Close #3993
Fix QueueRecycler.

Double-release protection added in 1c758b0b made QueueRecycler throw NPEs when
trying to recycle existing instances.
Fix Aggregator.buildAggregation on MULTI_BUCKETS aggregators.