bug #435 Support retrieving initData from ContentProtection
Created by: greg80303
Also incorporates several other fixes/changes that were required to make this solution work:
Move LICENSE_REQUEST_COMPLETE logic to ProtectionController.
Modified the interface for KeySystem.getInitData() to return an
ArrayBuffer. The is consistent with the rest of the APIs that always
represent initData as ArrayBuffers.
Use readyState to work-around IE11 bug:
IE11 does not allow you to set MediaKeys until the media element
has entered a certain ready state. We need to register for events
to ensure that we don't set the keys too early.
Check for duplicate initData before creating sessions.
Introduce new method to select key system:
If initData is not provided in the media, we select our key system
using DRM-specific ContentProtection elements.
Add new logic to Stream.initProtection() for getting initData from
ContentProtection.