Add File.java to forbidden APIs

This commit cuts over all of core (not quite all tests) to java.nio.Path
It also adds the file class to the core forbidden APIs to prevent its usage.

This commit also resolves #8254 since we now consistently useing the NIO Path
API. The Changes in this commit allow for more information if IO operations fail
since the NIO API throws exceptions instead of boolean return values. The build-in
methods used in this commit are also more resillient to encodeing errors like
unmappable characters and throw exceptions if those chars are present in a file.

Closes #8254
Closes #8666
Revert back APIs that resolve files from classpath to java.net.URL

The conversion to the Path API doesn't work if the path points
to a file inside a JAR like a config. These path must be read
while the ZIP filesystem is opened which can't be guaranteed across
the board. This commit reverts back the relevant changes to java.net.URL
and adds a util method to read UTF-8 Encoded files from URLs correctly.
[TEST] guarantee REST tests execution order

REST tests are being shuffled before their execution. To guarantee their repeatability given the seed, their order needs to be always the same before the shuffling happens.

Closes #8745
[PLUGIN] don't set posix permission on filesystem that don't support it
[PLUGIN] Don't use atomic move when installing plugin

the extract location might be on a different filesystem where
atomic move won't work. Yet this operation is not critical in terms
of visibility so there is no need to do this.
[TEST] Wait for yellow before running rescorer tests
[Doc] Add an UpdateRequest example to Java API doc

Closes #7083.
java: QueryBuilders cleanup: remove deprecated

Related to #8667:

Some QueryBuilders have been deprecated in 1.x branches. We removed them in 2.0.

Removed
-------

* `textPhrase(...)`
* `textPhrasePrefix(...)`
* `textPhrasePrefixQuery(...)`
* `filtered(...)`
* `inQuery(...)`
* `commonTerms(...)`
* `queryString(...)`
* `simpleQueryString(...)`

Closes #8721.
[TEST] remove action names bwc layer

The bwc layer added with #7105 is not needed in master as a full cluster restart will be required, thus from 2.0 on the only supported action names are compliant to the defined conventions and don't need to be converted to the old format

Closes #8758
[DOCS] Document ActionNamesTests
[Doc] Java API: add search templates

Closes #7321.
[Doc] Java API: add information on JBoss EAP

Closes #3445.
API endpoint cluster.put_settings accepts timeout & master_timeout query parameters

Closes #8769
[CLIENT] Add internal liveness action

This commit adds a very lightweight action to the transport
serivce that allows to fetch clustername and the discovery node
from a node. This is used by transport clients to test liveness of
a node without using the nodesinfo API which can be blocking if management
threadpools are busy.

Closes #8763
Factor out PID file creation and add tests

This commit factors out the PID file creation from bootstrap and adds
tests for error conditions etc. We also can't rely on DELETE_ON_CLOSE
since it might not even write the file depending on the OS and JVM implementation.
This impl uses a shutdown hook to best-effort remove the pid file if it was written.

Closes #8771
Remove runtime version checks

This cleanup commmit removes a large protion of the versioned reads / writes
in the network protocol since master requires a full cluster restart.
Internal: remove bwc leftover

This caused some test failures as the readFrom method was not in sync anymore with the writeTo
Internal: remove some more bwc code

Some more code that was left for backwards compatibility can now be removed on master since 2.0 will require a full cluster restart.

Closes #8778
Internal: remove optional original indices

Original indices are optional in ShardDeleteByQueryRequest only for backwards compatibility, see #7406. We can remove this in master since 2.0 will require a full cluster restart.

Closes #8777
[TEST] Fix Link permission to create symoblic links in temp dirs