Core: Upgrade to lucene-5.0.0-snapshot-1642891.

The only required change was to add a description to our index outputs.

Close #8743
[TEST] speed up tests by reducing the recovery retry by default
Update range-filter.asciidoc

Closes #8741
[TEST] use private randomness in InternalTestCluster
[docs] formatting and general pedantry

I'm not sure if the `distance-units` section is totally clear, when using the 'Geohash Cell Filter' and omitting a unit, the default is to interpret the integer as the 'length of the geohash prefix', not to default it to 'meter'. Maybe I'm being pedantic.

Closes #8744
Fix resource description of VerifyingIndexOutput.
Override write(byte[] b, int off, int len) in FilterOutputStream for better performance

Closes #8748
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