"Global Actions Panel" plugin

This change adds a new plugin API surface inside of Global Actions,
where a plugin can provide a View to be rendered alongside the Global
Actions menu.

When the GlobalActionsDialog.ActionDialog is created, the plugin can
produce a GlobalActionsPanelPlugin.PanelViewController instance, which
is used to provide the View to be rendered, and respond to Global
Actions events (right now, only dismissal). At this time, the plugin
is given an instance of GlobalActionsPanelPlugin.Callbacks, allowing
the plugin to interact with the GlobalActionsDialog (right now, only
to request dismissal).

When there is a Panel present, a darker scrim is used that is *not*
based on the colors underneath.

In order to provide maximum flexibility, the View comprising the Panel
is rendered above (z-ordering) the existing Global Actions menu, and
can take up the entire screen if desired. In practice, plugins should
take care to not block access to the GlobalActions menu.

Change-Id: I9d6eea80f7eb49e9adbc1a634f7d9c1ab720cddb
Test: manual
5 files changed