media: Support unprefixed EME API on Android.

Detailed changes:
1. Supports latest MediaKeys API in ProxyMediaKeys, RendererCdmManager, IPC,
   BrowserCdmManager, BrowserCdm and MediaDrmBridge (C++ and Java), including:
   - Support new API: CreateSessionAndGenerateRequest, CloseSession, etc.
   - Support new events: SessionKeysChange and SessionExpirationUpdate.
   - Remove old events: SessionCreated and SessionReady.
   - Remove old integer session ID.
   - Fully support promises.
2. BrowserCdm inherits MediaKeys. As a result, MediaDrmBridge is also a
   MediaKeys. This will make it easy to use MediaDrmBridge in other places, e.g.
   in MojoCdmService.
3. MediaDrmBridge Java class refactored to accomodate these changes.

Notes:
1. MeidaDrm doesn't support key status. A dummy key ID is used to report key
   status change.
2. MediaDrm doesn't support expiration time.
3. Persistent session is not supported; ProxyMediaKeys rejects LoadSession() and
   RemoveSession() right away.
4. Promises are converted to promise ID in ProxyMediaKeys and MediaDrmBridge so
   that we can pass it over IPC and JNI.

BUG=442584
TEST=Prefixed API test pages work. Need to test unprefixed API.

Review URL: https://codereview.chromium.org/850183002

Cr-Commit-Position: refs/heads/master@{#312348}
20 files changed