Aggregations: Adds ability to sort on multiple criteria

The terms aggregation can now support sorting on multiple criteria by replacing the sort object with an array or sort object whose order signifies the priority of the sort. The existing syntax for sorting on a single criteria also still works.

Contributes to #6917
True, I put this in more so that if the user is just using term ordering we don't end up wrapping it in a compound ordering which makes it difficult to know that its just term ordering for the term error calculations in InternalTerms and setting the shard size below