ShellSurface: Make InitializeShellSurface public.
Shell: Introduce WaylandShell.

This patch introduces WaylandShell. This class is responsible for
initializing the appropriate Wayland shell and creating WaylandShellSurface.
Now, all shell type related logic will be handled internally by WaylandShell.
Shell: Take WaylandShell into use.

This patch takes WaylandShell into use and makes necessary changes in
Display, Window and WaylandShellSurface.
Move ShellSurface to shell/
Gardening: update to latest revision.
Gardening: Update to latest revision.

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