Improved SearchContext.addReleasable.

For resources that have their life time effectively defined by the search
context they are attached to, it is convenient to use the search context to
schedule the release of such resources.

This commit changes aggregations to use this mechanism and also introduces
a `Lifetime` object that can be used to define how long the object should
live:
 - COLLECTION: if the object only needs to live during collection time and is
   what SearchContext.addReleasable would have chosen before this change
   (used for p/c queries),
 - SEARCH_PHASE for resources that only need to live during the current search
   phase (DFS, QUERY or FETCH),
 - SEARCH_CONTEXT for resources that need to live until the context is
   destroyed.

Aggregators are currently registed with SEARCH_CONTEXT. The reason is that when
using the DFS_QUERY_THEN_FETCH search type, they are allocated during the DFS
phase but only used during the QUERY phase. However we should fix it in order
to only allocate them during the QUERY phase and use SEARCH_PHASE as a life
time.

Close #5703
Upgrade to Lucene 4.7.2
Check for no open issues before build release
Prevent fsync from creating 0-byte files

This is related to LUCENE-5570 where fsync creates a 0-byte file
if the file does not exists. This commit adds the patched lucene
version using Java 7 APIs as well as a note to replace this method
with the upcomeing IOUtils#fsync in Lucene 4.8

This commit cleans up FsImmutableBlobContainer#writeBlob to make
use of Java7 Auto-Closing features and ensures that the directory
the blob was written to is fsynced as well if possible.
Remove unused FileSystemUtils#copyFile
[BUILD] remove leftover print statement
Separate persistent and global metadata serialization settings
Benchmark documentation

Moving benchmark documentation under the search section.

Closes #5786
Fix snapshot status with empty repository

The snapshot status command with empty repository should return current status of currently running snapshots in all repositories.

Fixes #5790
Separate benchmark API endpoints

Separates benchmark API endpoints into separate files according to API
funtionality. This makes it easier for our tests and clients.

Closes #5787
Use TransportBulkAction for internal request from IndicesTTLService

This prevents executing bulks internal autocreate indices logic
and ensures that this internal request never creates an index
automaticall.

This fixes a bug where the TTL purger thread ran after the actual
index it was purging was already closed / deleted and that re-created
that index.

Closes #5766
Remove jsr166y now that we on Java 7, cleanup jsr166e to classes we use
Remove FileSystemUtils#maxOpenFiles

This method basically forcefully creates as many files as possible
to find out the process limit in a brute-force manner. The number of
possible probles with this approach would exceed the number of lines
left on this commit message.

This commit uses a JMX based alternative to print the process limit.
Cleanup FileSystemUtils#mkdirs(File)

This methods had some workarounds for bugs that seem to be fixed
in Java 7 [1]. There seem to be other problems on shared file-systems
which are not really supported by lucene anyway or rather not
recommeded. Yet the current solution that interrupts a static thread
reference is too dangrous given all the usage of NIO across
elasticsearch.

[1] http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4742723
Update clusterstate if mapping service has local changes

If the during percolating a new field was introduced
in the local mapping service, then those changes should
be updated in cluster state of the master as well.

Closes #5776
Updated date_formats to new dynamic_date_formats
Update core-types.asciidoc

Missing bracket
Update percolate.asciidoc

fix typo
[TEST] Wait for shards to be allocated before running testUpdateMappingDynamicallyWhilePercolating.

If the percolate request is executed soon enough, all shards fail and the
mapping is not actually updated.
Switch back to ConcurrentMergeScheduler

Load tests showed that SerialMS has problems to keep up with
the merges under high load. We should switch back to CMS
until we have a better story to balance merge
threads / efforts across shards on a single node.

Closes #5817