[DL] Add a DisplayLocking callback queue.

This patch adds a callback queue to display locking context in order to
process scheduled tasks in the correct order.

Currently the behavior is:
- Put callbacks in a queue, and post a task to run them.
- While running the task, process all callbacks in the existing queue
- If any of the callbacks schedule a _new_ callback, then they go into
  a new queue, and a new task is scheduled to run them.

R=chrishtr@chromium.org

Bug: 882663
Change-Id: I41dfc756bb5585d33da85746054a42cc7f5072ef
Reviewed-on: https://chromium-review.googlesource.com/c/1277696
Commit-Queue: vmpstr <vmpstr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600814}
7 files changed