cache recycler now node/client level component
remove unused class
search reducer to use atomic reference arrays
move away from maps to correlate between responses from different shards to unique incremental integer representing a shardRequestId (unique for the specific search request)

 this allows to no longer require using maps (or CHM), and simply use atomic reference arrays, which rely on volatiles. it also removes the need to use a cache for heavy data structures since we don't really have them around anymore...
multiget requests which referred to missing indexes blocked and never returned.
Rename DocIdAndVersion.reader to DocIdAndVersion.context to avoid confusion.
Rename IndicesAdminClient#existsAliases to IndicesAdminClient#aliasesExist.
Closes #3330
move the fields doc queue to a better package location
fix term vector api retrieved wrong doc

The previous loading of term vectors from the top level reader did not use the
correct docId. The docId in Versions.DocIdAndVersion  is relative to the segment
reader in Versions.DocIdAndVersion and not to the top level reader.
Consequently the term vectors for the wrong document were returned if the
document was not on the first segment of the shard.
move to use ScoreDoc/FieldDoc instead of our wrappers
now that we have the concept of a shardIndex as part of our search execution, we can simply move to use ScoreDoc and FieldDoc instead of having our own wrappers that held the info
Also, rename shardRequestId where needed to be called shardIndex to conform with the variable name in Lucene
Renamed IndicesGetAliases* classes to begin with GetAliases*
Add found field for bulk deletes. Closes #3320
Set spare becore comparing comparator bottom value

The actual documents value was never calculated if setSpare wasn't called
before compareBottom was called on a certain document.

Closes #3309
Debian/Redhat package improvments

This decision helps people who want to rollout the oracle java without having an openjdk java installed.

* Removed any hard dependency on Java in the debian package
* The debian init script does not check for an existing JAVA_HOME anymore
* Debian and RedHat initscripts now exit if they do not find a java binary (instead of starting elasticsearch in the background and swallowing the error as there is no way to log it in that case)
* Changed the debian init script to rely on the pid file instead of the argument name of process
* Added a useful error message in case no java binary is available (in elasticsearch shell script)

Closes #3304
Closes #3311