Initial VSync support and ensure we flush Wayland display every frame.

Chromium uses VSyncProvider for providing needed vsync support.
GetVSyncParameters gets called before a swap happens and you can pass the
refresh rate and time between consecutive refreshes. This could also be used
to ensure that we flush the Wayland display after every swap. Now, We PostTask
to the current MessageLoop to schedule a flush immediately after the swap
happens.
DisplayPollthread: Poll only for reading Wayland events.

We now ensure that Wayland display is flushed every frame. We don't have to do
that anymore in pollthread. Now, DisplayPollthread only reads any pending events
coming from Wayland compositor and dispatches them.
Cleanup: Remove obsolete code related to frame callbacks.

We have lot of code related to display queue and frame callbacks to ensure that
display was flushed properly. This code was never used and also is obsolete now
as we have a proper mechanism to flush display.
wayland: Implement HandlePopupDone callback for dispatching close window

Now if a menu is opened and the user clicks outside a Chromium window then the
popup done event will dispatch a close window for that menu.
Gardening: Fix popups.

Popups get closed automatically after being focussed for a short duration. This
was as a result of recent changes in WaylandDisplayPollThread. Looks like we need
to call flush after dispatch in WaylandDisplayPollThread. This doesn't cause any
regression and fixes popups. So, reverting these changes.
Gardening: Update to latest revision.

Effecting CL: https://codereview.chromium.org/140593002