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.
Convert relative paths to URI first in tests to prevent URL encoded paths

If a path to the test classes contains spaces Hunspell tests failed due
to URL encoded paths. This happens on CI builds if you give the build
a name containing a space. This is fixed by first converting to a URI
and created a File object from the URI directly.
Added logging and asserts to make it easier to understand potential failures
Logging shard level multi percolate errors under debug rather than trace
Removed unnecessary catch clause.
Improved logging
Recheck cutoffScore during phrase_suggest merge.

The goal is to throw out suggestions that only meet the cutoff in some
shards.  This will happen if your input phrase is only contained in a
few shards.  If your shards are unbanced this rechecking can throw out
good suggestions.

Closes #3547.
Force default codec in tests where we rely on the latest lucene defaults
Execute listeners on current thread if threadpool is shutting down
Use atomic collections to make sure all of the memory contents are visible from writing to reading thread.
Added Random test for ShardAllocator.

This test will make random allocation decision on a growing and
shrinking cluster leading to a random distribution of the shards.
After a certain amount of iterations the test allows allocation unless
the same shard is already allocated on a node and balances the cluster
to gain optimal balance.
Added total, successful shard info to search related asserts in ElasticsearchAssertions

Rewrote SimpleSearchTests assertion to use that.
Add more trace logging if shard allocation is throttled
Changed expectedOperationsPerItem from AtomicInteger array to AtomicReferenceArray<AtomicInteger>.
Made node stopping / starting less aggressive in RecoveryPercolatorTests.
SearchWhileCreatingIndexTests didn't always supply enough node for write consistency requirements and thus hanged.

Added more debug logging to TransportShardReplicationOperationAction

*Changed* node naming in tests from GUIDs to node# based naming as they are much easier to read
Allow up to 10% unbalance in random allocator tests
Added IDs to the community clients docs, to control HTML page names