Shutdown: Add support for Ctrl-Close event on Windows platforms to gracefully shutdown node

This commit adds the support for the Ctrl-Close event on Windows using native system calls. This way, it is possible to catch the Ctrl-Close event sent by a 'taskill /pid' command (or when the user closes the console window where elasticsearch.bat was started) and gracefully close the node. Before this commit, the node was simply killed on taskkill/window closing.
Mappings: Reencode transformed result with same xcontent

When I originally wrote the transform feature I didn't think that the
XContentType of the reencoded source mattered.  It actually matters because
payloads for the completion suggester are stored and returned exactly
as encoded by this XContentType.

This revision changes the transform feature from always reencoding with smile
to always reencoding with the provided XContentType to support the completion
suggester.

Closes #8959
Mappings: Include currentFieldName into ObjectMapper errors

Without currentFieldName error is very generic and non informative

Close #9020
Aggregations: Adds methods to get to/from as Strings for Range Aggs

Adds getToAsString and getFromAsString to Range interface and implements them for all range aggregations

Closes #9003