IMPALA-4678: move query MemTracker into QueryState
The query MemTracker for query execution is now owned directly by
QueryState, which greatly simplifies the lifecycle of the MemTracker.
This required various other changes and enabled some simplifications.
- The coordinator's QueryState is constructed earlier before fragments
are sent out, since we need a MemTracker at that point.
- The global query MemTracker map can be removed.
- The static request pool mem tracker is moved into into ExecEnv.
- Temporary query MemTrackers used to evaluate expressions during
planning do not need to be registered globally and are owned
directly by the RuntimeState.
- Various cleanup logic is moved around to reflect the other changes.
Reviewed-by: Tim Armstrong <firstname.lastname@example.org>
Tested-by: Impala Public Jenkins