make sure we update last failure
Add optimize thread pool (size 1) dedicated to perform explicit optimize API
Have a dedicated thread pool for explicit optimize calls (shard level optimize operations). By default, the size should be 1 to work the same with how things work currently allowing for only 1 shard level optimize on a node.

The change allows to see the optimize thread pool stats now, and potentially increase the thread pool size for beefy machines.

closes #3366
Upgrade to Lucene 4.4
Removed XPatternCaptureGroupTokenFilter
Added cluster pending tasks api.
Closes #3368
remove cached stream output
start to build the infra for simpler migration to netty 4, starting with removing the cache stream output handling as it will come built in
[snapshot/restore] Add ability to register snapshot repositories
[snapshot/restore] Add support for Repository Instantiation
[snapshot/restore] Add snapshot creation mechanism
[snapshot/restore] Rename snapshot endpoint to repository
[snapshot/restore] Add snapshot status update mechanism
[snapshot/restore] Add snapshot simple end-to-end snapshotting test
[snapshot/restore] Add basic file system store implementation
[snapshot/restore] Add file snapshotting
[snapshot/restore] First stage or repository refactoring - make them static
[snapshot/restore] Cleanup after refactoring
[snapshot/restore] Clean up after enabling forbiddenAPI
[snapshot/restore] Add TransportRestoreSnapshotAction
[snapshot/restore] Add restore logic for cluster metadata
[snapshot/restore] Before adding RestoreSource