wayland: Pull in egl.pc for gyp

This patch generates the needed system Mesa flags for compilation of
wayland/EGL/ submodule. Ultimately, it fixes the problem for systems that don't
have X11 headers installed by pulling in the flags from system's EGL
(specifically -DMESA_EGL_NO_X11_HEADERS)
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
Include DesktopFactoryWayland header only when TOOLKIT_VIEWS =1
Move everything under ui/ folder to ui namespace.

Eventually, we should move ipc/, ui/, desktop_aura/ to their own namespace
as rest of chromium code. This CL moves everything under ui/ folder to ui
namespace.
Move everything under desktop_aura/ to view namespace.
Move impl/desktop_aura/ to ui/

Fixes #209
Gardening: update to latest revision.

Effecting CL: https://codereview.chromium.org/180003006
Gardening: Remove temporary patch.
IPC: Move DisplayChannel and host to content namespace.

DisplayChannel and Host are very specific to our needs as we do everything
related to a window system in GPU process. This has to be really inbuilt in
content layer. Now, both the classes are moved to content namespace and
eventually should be build as part of content target.
IPC: Introduce OzoneChannelHostFactory.

Currently, OzoneDisplay is responsible for establishing the Channel
connection between ChannelHost and Channel. This should be transparent
in OzoneDisplay and should be handled in content. This patch introduces
OzoneChannelHostFactory which will be responsible for either establishing
IPC connection with DisplayChannel or just creating InProcessEventConverter,
depending on inprocess GPU usage. The idea here is that, we should be able
to establish the Browser process side connection in BrowserMainLoop as we
do in case of BrowserGpuChannelHostFactory.