athena: Maintain the list of windows in window-list provider.
We currently recreate the list of all windows for each call to the
WindowListProvider::GetWindowList(). This introduced unnecessary cost
since we get this list of windows pretty frequently at times (e.g. for
each scroll when in overview mode, several times when going into
overview mode, etc.) especially if there is a large number of windows.
So, instead of this, maintain a list of windows in the WindowListProvider
implementation, and update it when needed, as new windows are added or
windows are removed.
BUG=413928
R=oshima@chromium.org
Review URL: https://codereview.chromium.org/
577533002
Cr-Commit-Position: refs/heads/master@{#295395}