Put Eclipse settings in the root directory.

This enforces that settings are taken into account whichever mean is used to
import the project into Eclipse (manual import, m2e, mvn eclipse:eclipse, ...).
PluginManager fails with unknown command when passing url or verbose parameters
Closes #3245.
NPE in PluginManager when asking for list on non existing dir
Asking for list of installed plugins with no existing plugin dir:

```sh
$ bin/plugin --list
```

It causes a NPE in PluginManager.
Closes #3253.
add running the tests in headless mode in maven
Merge integer field data implementations.

This commit merges field data implementations for byte, short, int and long
data into PackedArrayAtomicFieldData which uses Lucene's PackedInts API to
store data.

Close #3220
Make index.warmer.enabled setting dynamic

Even though proposed in the documentation, the realtime enabling/disabling of
index warmers was not supported. This commit adds support for
index.warmer.enabled as a dynamic setting.

Closes #3246
Dont execute suggest before parsing the full request

The current implementation of parsing suggestions executed inside of the
the pull parser - which resulted in being reliable of the order of the
elements in the request. This fix changes the behaviour to parse the
relevant parts of the request first and then execute all the suggestions
afterwards, so we can be sure that every information has been extracted
from the request before execution.

Closes #3247
Moving forbidden-api checks to compile phase instead of test phase (fail fast)
Updated elasticsearch.yml file for recovery throttling
Fixes the issue that the `parent` option was ignored for delete requests.

The `parent` option was ignored in the delete api (rest only) and for delete actions in the bulk api.
This bug occurred in the case that the _parent field is enabled, and only the parent option was used. This resulted in a situation that documents are deleted even if the specified parent value is incorrect.

Closes #3257
Fix misspelling.
Ignore live docs when loading field data, the ID cache and filter caches.

Relying on deleted documents when loading field data is dangerous because a
field data instance might be loaded for a given generation of a segment and
then loaded from the cache by an older generation of the same segment which
has fewer deleted documents. This could, for example, lead to under-estimated
facet counts. The same issue applies to the ID cache and filter caches.

Close #3224
Fixes issue that in some cases the doc_as_upsert option is ignored.
Closes #3265
Changes validation error message
Clean up update tests
Stop aborting of multiget requests in case of missing index

The MultiGet API stops with a IndexMissingException, if only one of all
requests tries to access a non existing index. This patch creates a
failure for this item without failing the whole request.

Closes #3267
Supports mget fields parameter given as string.

Closes 3270
Parent was ignored in exists request

The routing was always set to null right after the parent was set.

Closes #3276
(Java) Using primitive arrays instead of Object with map/builder
also simplify and consolidate the builder generic value write handling
fixes #3279
Support for parent in multi get request

When specifying the docs to be returned in a multi get request, a parent
field could not be specified, so that some docs seemingly did not exist,
even though they did.

This fix behaves like the normal GetRequest and simply overwrites the
routing value if it has not yet been set.

Also a test for routing with mget has been added.

Closes #3274