Added support for sorting by fields inside one or more nested objects.

The sorting by nested field support has the following parameters on top of the already existing sort options:

nested_path - Defines the on what nested object to sort. The actual sort field must be a direct field inside this nested object. The default is to use the most immediate inherited nested object from the sort field.
nested_filter - A filter the inner objects inside the nested path should match with in order for its field values to be taken into account by sorting. Common case is to repeat the query / filter inside the nested filter or query. By default no nested_filter is active.
Either the highest (max) or lowest (min) inner object is picked for during sorting depending on the sort_mode being used. The sort_mode options avg and sum can still be used for number based fields inside nested objects. All the values for the sort field are taken into account for each nested object.

Closes #2662
don't exclude services otherwise es.jar doesn't include the SPI information to load XBloomPostings
Improve stability of testSimpleAwareness test
Improve stability of shardsCleanup test
Make it simpler to determine which version of state was used to calculate health
Improve stability of UpdateNumberOfReplicasTests