Update MediaKeysListener API to set specific keys to listen to

This CL updates the MediaKeysListener API to listen for a specific set
of keys instead of listening to all media keys and depending on a
response from the MediaKeysListener::Delegate to decide whether or not
to propagate.

The advantage of this change is that it allows the
MediaKeysListener::Delegate::OnMediaKeysAccelerator callback to be
called on the delegate's own thread for the Windows implementation.
Before, since the Windows implementation depends on a keyboard hook
which runs on a dedicated thread, it needed to immediately know the
delegate's response so that it would know whether or not to propagate
the key event. Now, the listener is already aware of which keys to
propagate and can immediately propagate (or not) and post a task to
the main thread to call delegate_->OnMediaKeysAccelerator
asynchronously.

Bug: 902379
Change-Id: Ib7cb27bd6bbcec382fb4a050166df19aa9131673
Reviewed-on: https://chromium-review.googlesource.com/c/1374832
Commit-Queue: Tommy Steimel <steimel@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616770}
11 files changed