Update MediaKeys and MediaKeySession lifetimes

MediaKeys objects live as long as JavaScript or HTMLMediaElement has a
reference to it.

MediaKeySession objects live as long as JavaScript has a reference to it
or MediaKeys still exists and !closed. So even if all JavaScript references
to MediaKeySession are gone, the MediaKeySession object remain so that
events from the CDM can still get passed to JavaScript. It will fire events
until MediaKeys goes away (indicating that the CDM is no longer needed)
or the session is closed by the CDM.

Also update MediaKeys to know when the context is going away so that it can
clean up.

BUG=341567
TEST=EME content tests pass

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

git-svn-id: svn://svn.chromium.org/blink/trunk@167433 bbb929c8-8fbe-4397-9dbb-9b2b20218538