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
[DOCS] Update merge docs to reflect the max_merge_at_once property
[TEST] Don't delete data dirs after test - only delete their content.

Closes #5815
Remove garbage