Bug # 623 Async Protection teardown
Created by: greg80303
Added events to allow the protection system to be torn down asynchronously. Since the latest EME APIs are mostly asynchronous, this is necessary to ensure proper shutdown prior to changing streams.
Shutdown the media source before shutting down the protection system. On Chrome, this is necessary because MediaKeys can not be set to null until the src has been cleared.