Aggregations: Significant Terms Heuristics now registered correctly

Closes #7840
Update version flags after backporting to 1.3.3

Relates to #7857
Internal: split internal free context request used after scroll and search

We currently use the same internal request when we need to free the search context after a search and a scroll. The two original requests though diverged after #6933 as `SearchRequest` implements `IndicesRequest` while `SearchScrollRequest` and `ClearScrollRequest` don't. That said, with #7319 we made `SearchFreeContextRequest` implement `IndicesRequest` by making it hold the original indices taken from the original request, which are null if the free context was originated by a scroll or by a clear scroll call, and that is why original indices are optional there.

This commit introduces a separate free context request and transport action for scroll, which doesn't hold original indices. The new action is only used against nodes that expose it, the previous action name will be used for nodes older than 1.4.0.Beta1.

As a result, in 1.4 we have a new `indices:data/read/search[free_context/scroll]` action that is equivalent to the previous `indices:data/read/search[free_context]` whose request implements now `IndicesRequest` and holds the original indices coming from the original request. The original indices in the latter requests can only be null during a rolling upgrade (already existing version checks make sure that serialization is bw compatible), when some nodes are still < 1.4.

Closes #7856
Internal: clarify when a shard search request gets created to be only used locally

In some cases a shard search request gets created on a node to be only used there and never sent over the transport. This commit introduces two static "factory" methods and makes the existing local constructors private so that it's clearer when a shard search request will be only used locally. If a shard level request doesn't get sent over the transport nor executed via transport action, it doesn't need to hold the original request headers nor the original indices. Thus the original indices become non optional for requests that get serialized, and we throw an exception when we try to serialize a request created through the local static methods.

Took the chance to remove an unused InternalScrollSearchRequest constructor and an empty else branch in `TransportSearchScrollQueryAndFetchAction`.

Closes #7855