exo: Implement version 5 of aura shell.

This adds two new events to aura_output interface that makes it
easier for clients to calculate an ideal contents scale.

This also adds a new request that can be used to set a unique
application ID for a surface. The application ID identifies the
general class of applications to which the surface belongs. The
compositor can use this to group multiple surfaces together.
For example, "org.chromium.FooViewer".

Note that the application ID set here takes precedence over the
app id set through XDG shell interface. To keep it simple, we
just remove the implementation of xdg surface set_app_id. If
that turns out to be useful in the future, then we can always
re-implement that and make it available as an alternative ID.

Bug: 824449, 791672
Test: wayland_client_info
Change-Id: I3219cedbd7d9ce65e73ca33127ea976acc8c4163
Reviewed-on: https://chromium-review.googlesource.com/1008664
Reviewed-by: Daniele Castagna <[email protected]>
Commit-Queue: David Reveman <[email protected]>
Cr-Commit-Position: refs/heads/master@{#550038}
diff --git a/components/exo/surface.h b/components/exo/surface.h
index a3610ac..d0874a9 100644
--- a/components/exo/surface.h
+++ b/components/exo/surface.h
@@ -145,9 +145,12 @@
   // Request that surface should use a specific set of frame colors.
   void SetFrameColors(SkColor active_color, SkColor inactive_color);
 
-  // Request that surface should have a specific startup_id string.
+  // Request that surface should have a specific startup ID string.
   void SetStartupId(const char* startup_id);
 
+  // Request that surface should have a specific application ID string.
+  void SetApplicationId(const char* application_id);
+
   // Request "parent" for surface.
   void SetParent(Surface* parent, const gfx::Point& position);