Added a status method CountResponse that resolve shard failures into rest status code. That method is now used in RestCountAction to return proper status.

Closes #3585
Treat empty prefrence as a `not set` in Plain Operation Routing

An empty preference was causing a AIOOB exception in
PlainOperationRouting. We now check for `null` or `empty` instead of
just `null`

Closes #3591
Prevent allocation algorithm from prematurely exiting balance operations

In a special case if allocations from the "heaviest" to the "lighter" nodes is not possible
due to some allocation decider restrictions like zone awareness. if one zone has for instance
less nodes than another zone so one zone is horribly overloaded from a balanced perspective but we
can't move to the "lighter" shards since otherwise the zone would go over capacity.

Closes #3580
Migrated documentation into the main repo
Fixed a typo in the config of light finnish stemmer (old last_finish is still supported for backward compatibility)

Closes #3594
Fixed typo
Use a separate build directory for Eclipse.

The fact that Maven and Eclipse share the same build directories can trigger
race conditions when both are trying to build at the same time, eg. if you run
`mvn clean test` while Eclipse is up and running: Eclipse will notice that some
class files are missing and start compiling in parallel with Maven.
Make sure 2 writes happened, so we can check if 2 deletes happen that have been triggered by ttl
Ignore AlreadyExpiredException exception during when indexing a document on a replica.
The document should just be indexed to stay consistent with the primary shard.
initial commit
bla