Wayland: StartProcessingEvents the first time a widget is realized.

Currently, OzoneDisplay informs WaylandDisplay to StartProcessingEvents when
the first AcceleratedWidget is Realized. WaylandDisplay however decides when
to StopProcessingEvents (i.e. When all surfaces are destroyed). Start/Stop
processing events can be dealt internally in WaylandDisplay as it owns the
poll thread and also it would simplify the logic in OzoneDisplay. This CL
changes so that WaylandDisplay starts Processing events the first time an
Accelerated surface is realized. Start/Stop processing functions will be
made private in a follow up patch.
OzoneDisplay: Remove any calls to StartProcessingEvents in OzoneDisplay.

WaylandDisplay now implicitly controls when to start and stop processing
Wayland events. This patch removes similar functionality from OzoneDisplay.
WaylandDisplay: Make Start/StopProcessingEvents API private.

Now, WaylandDisplay controls when it starts/stops processing Wayland
events. This patch makes Start/StopProcessingEvents API private as
they are not meant to be used outside WaylandDisplay.
Events: Introduce EventFactoryOzoneWayland class.

This CL introduces EventFactoryOzoneWayland class which implements
EventFactoryOzone. The purpose for introducing this class are the following:
1)Align with Upstream design.
2)Fixes a Chicken and Egg problem with DesktopScreen. DesktopScreen
  expects the EventConverter to be initialized before it's constructed
  (i.e. To register itself as OutputObserver) and EventConverter is not
  initialized till the first window is created. In follow up patch,
  EventFactoryOzoneWayland will be constructed during OzonePlatform
  construction.
3)Move all In/Remote process event converter logic from OzoneDisplay to
  EventFactoryClass. In a follow up patch all
  EventConverterOzoneWayland::GetInstance() calls will be removed and replaced
  with EventFactoryClass.
Ozone: Construct EventFactoryOzoneWayland instead of EventFactoryOzone.

We now have our own implementation of EventFactoryOzone. This CL ensures we
initialize EventFactoryOzoneWayland during Ozone platform initialization.
Events: Use EventFactoryWayland to initialize EventConverter.

Currently, We initialize inprocess/Remote event converter in Get and
RealizeAcceleratedWidget of OzoneDisplay. This patch changes so that
DRWH will initialize the inprocess Event converter and Remote EventDispatcher
in RealizeAcceleratedWidget using the new api in EventFactoryOzoneWayland.
This makes us align with upstream, in case toolkit_views support is disabled
RWH will make the necessary StartProcessingEvents call.
OzoneDisplay: Remove the usage of EventConverter.

All EventConverter initialization is internal to EventFactoryWayland.
This patch removes all EventConverter initialization from OzoneDisplay.
Replace EventConverterOzoneWayland::GetInstance() with EventFactory.

This patch replaces all usage of EventConverterOzoneWayland::GetInstance()
with EventFactoryOzoneWayland::GetInstance().
EventConverterOzoneWayland::GetInstance() will be removed in a follow up
patch.
Remove all redundant APIS in EventConverter and WaylandDisplay.
Move LookAheadOutputGeometry to WaylandDisplay.

This patch moves LookAheadOutputGeometry internal to WaylandDisplay.
This is in preparation to move all screen related things aways from
OzoneDisplay.
DesktopAura: Make creation of DesktopScreen internal to DFW.

This patch moves logic to create DesktopScreen from OzoneDisplay to
DesktopFactoryWayland. Now we should have all DesktopAura related
dependencies in desktop_aura/ only.

fixes #205