MediaTranscodingService: Add AdjustableMaxPriorityQueue.

AdjustableMaxPriorityQueue is a custom max priority queue that helps managing jobs for MediaTranscodingService.

AdjustableMaxPriorityQueue is a wrapper template around the STL's *_heap() functions.
- Internally, it uses a std::vector<T> to store elements in a heap order.
- Support adjusting item's priority while maintaining the heap property.
- Support removing any item in the heap while maintaining the heap property.
- AdjustableMaxPriorityQueue needs T::operator<() at instantiation time

Bug: 145233472
Test: Unit test.

Change-Id: Ic43eee817877dfbf8b38919ce03d40d8763c493c
4 files changed