Use DiscoveryModule instead of ClusterService to obtain local node id

The ClusterService might not see the latest cluster state and therefore
might not contain the local node id. Discovery will always see the local
node id since it's set on startup.
Catch RejectedExecutionException on node shutdown
Expose 'index.compound_on_flush' via engine settings

Lucene 4.4 shipped with a fundamental change in how the decision
on when to write compound files is made. During segment flush the
compound files are written by default which solely relies on a flag
in the IndexWriterConfig. The merge policy has been factored out to
only make decisions on merges and not on IW flushes. The default now
is always writing CFS on flush to reduce resource usage like open files
etc. if segments are flushed regularly. While providing a senseable
default certain users / usecases might need to change this setting if
re-packing flushed segments into CFS is not desired.

Closes #3461
Create mapping ahead of time and don't rely on index request in test
In case ttl has passed, then just check the delete count
ttl can be as lower than 0 (purge interval)
Use nonzero status code to signal abnormal termination

We currently return with status code 0 when an IOException occurs.
The plugin manager should in any case return a nonzero status if
the operation was not successful. Now the PluginManager uses the
following reponse codes based on 'sysexists.sh':
 * '0' on success
 * '64' command line usage error
 * '70' internal software error
 * '74' input/output

Closes #3463
Return ordinals from MultiOrdinals.MultiDocs

MultiOrdinals.MultiDocs returned 'null' ordinals which caused
a NPE if the field was single valued and would allow a significantly
smaller in memory representation than single packed int ordinals.

Closes #3470
Added random sort test for dense and sparse fields.

This test triggers a MultiDoc / MultiOrds in-memory representation
even if the field is not multivalued

Relates to #3470
termvectors: fix null pointer exception if field has no term vectors

Retrieving termvectors for a document that does not have the requested field
caused a null pointer exception. Same for documents if the field has no term vectors,
for example, because the field only contains "?".
Now, an empty response is returned.

Closes #3471
when changing the mapping of the _default_ mapping, do not apply the old _default_ mapping to the new one and also do not validate the new version with a merge but parse is as a new type.

Closes #3474, Closes #3476
Separated index creation from mapping creation pending bug fix concerning concurrent not-acked mapping requests
Disable UpdateMappingTets#updateDefaultMappingSettings

Test has been too flaky over nightly builds. Disabling it
with AwaitFix.
Failure to execute search request with empty top level filter
closes #3477
NPE for POST mode facets if facet_filter gives no document.
Closes #3479.
Added IndicesAdminClient.getTemplate()

In addition to creating and removing a template, one can now receive the template as well.

Closes #3439