[DL]: Make update() not do the paint phase.

This patch changes the display locking update() function to not paint.
The reason for this is that update cannot release the lock on its own
and painted information is not needed for any information that script
might want.

Note that this updates the budget to actually check if any work is
required since we cannot reliably wait for any lifecycle phase.
Previously we waited for paint which was always guaranteed to happen.
Note that this updates the budget API to have NeedsLifecycleUpdates
instead of DidFinishLifecycleUpdates, which now checks the dirty bits
for any phases that might need updating.

It might be nice to implement co-operative painting that stashes the
paint for later use, but at this point it is only doing extra work.

R=chrishtr@chromium.org

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