[DL]: Implement a budget interface in display locking.

This patch does a few things:
- Removes the debugging macro code since it's losing its value.
- Add a DisplayLockBudget with two implementations:
  - Unyielding budget that never yields and finishes everything
  - Strict yielding budget that always yields between every lifecycle phase.
- Pulls out the lifecycle state from the context to the budget
- Adds tests for the budgets.

The step after this would be to implement a yielding budget, which should
be a combination of strictly yielding logic with some sort of a deadline.

R=chrishtr@chromium.org, mstensho@chromium.org

Bug: 907619, 882663
Change-Id: Idc75abd2334ce7b5aa6b48714b5b720d3da81b42
Reviewed-on: https://chromium-review.googlesource.com/c/1372307
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: vmpstr <vmpstr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616687}
15 files changed