Add a field data based TermsFilter

Add FieldDataTermsFilter that compares terms out of
the fielddata cache. When filtering on a large
set of terms this filter can be considerably faster
than using a standard lucene terms filter.

Add the "fielddata" execution mode to the
terms filter parser to enable the use of
the new FieldDataTermsFilter.

Add supporting tests and documentation.

Closes #4209
Fixed compile errors
Running the node stats api while a shard is moving onto the node logs an exception
fixes #4203
NPE in PluginsService when starting elasticsearch with a wrong user
When starting elasticsearch with a wrong linux user, it could generate a `NullPointerException` when `PluginsService` tries to list available plugins in `./plugins` dir.

To reproduce:

* create a plugins directory with `rwx` rights for root user only
* launch elasticsearch from another account (elasticsearch for example)

Related discussion: https://groups.google.com/forum/#!topic/elasticsearch/_WRW4Qfpo7M

Closes #4186.
Closes #4187.
Refactored open/close index api to make use of the new recently introduced generic ack mechanism

Closes #4169

Conflicts:
	src/main/java/org/elasticsearch/action/admin/indices/close/CloseIndexRequest.java
	src/main/java/org/elasticsearch/action/admin/indices/close/CloseIndexRequestBuilder.java
	src/main/java/org/elasticsearch/action/admin/indices/close/TransportCloseIndexAction.java
	src/main/java/org/elasticsearch/action/admin/indices/open/OpenIndexRequest.java
	src/main/java/org/elasticsearch/action/admin/indices/open/OpenIndexRequestBuilder.java
	src/main/java/org/elasticsearch/action/admin/indices/open/TransportOpenIndexAction.java
	src/main/java/org/elasticsearch/cluster/metadata/MetaDataIndexStateService.java
	src/main/java/org/elasticsearch/rest/action/admin/indices/close/RestCloseIndexAction.java
	src/main/java/org/elasticsearch/rest/action/admin/indices/open/RestOpenIndexAction.java
	src/test/java/org/elasticsearch/cluster/ack/AckTests.java
	src/test/java/org/elasticsearch/indices/state/OpenCloseIndexTests.java
Added base ClusterStateUpdateRequest class that executes on multiple indices
Added readTimeout, writeTimeout, readAcknowledged and writeAcknowledged methods variation without version as parameter, to be used by api that always read and write those parameters. Helps avoiding to call the variation that accepts a Version with actual version null.
Refactoring IndicesAnalysisService

Using enums where possible in order to clean up the code in IndicesAnalysisService

Also introduced a simpler generic caching mechanism, and tests.
field level field data cache should take into account a null listener
also, cleanup the onRemoval code
add timeout doc to delete
[DOCS] Fixed duplicate docs ID in delete
[DOCS] Added elasticsearch-extended-analyze plugin
Changed pom to allow import and running from eclipse

Currently when importing projects into eclipse you need to run 'mvn
eclipse:eclipse' on the command line to generate the poject files. This
means that when the pom changes you need to re-run the command on the
command line to reflect those changes in the project in eclipse.  This
commit allows the developer to import the project as an existing maven
project (can be shared using git after import) and then allows the
application to be run inside eclipse using the .launch file in
/dev-tools enabling easy debugging of the application within eclipse
without requiring a maven build.
By default don't fail on close sicne pending open files are common in ES

We have pending open files on a regular basis since we search while
relocating etc. and keep search contexts around that are cleaned up
later. We should rather let the close call pass on even if files are
open and only force failures on teardown in ElasticsearchIntegrationTest
Allow passing additional parameters to the test JVM like GC settings etc.
allow passing JVM args via env variables if not defined via the cmd
AckTests: more assertAcked and added common method to retrieve local cluster state
Upgrade to forbiddenapis 1.4
Added a bulk indexing while initializing test.

Relates to #4214
Upgrade RandomizedRunner Maven Plugin to 2.0.14