Introduce display specific all window drawn waiting (3/N)

This change modified the waitForAllWindowsDrawn API to wait for
windows on a specific display. INVALID_DISPLAY indicates to wait on all
visible windows on all displays.

To achieve that, it introduced a callback HashMap in WMS and a window
container as a parameter in the waiting related messages. The actual
window registration is done by WindowContainere

Bug: 141528152
Bug: 122726344
Bug: 134531136
Test: go/wm-smoke
Change-Id: Ie6c8acfccef6dcad34e208acc37dd87b1e18b0e1
8 files changed