Simplify use of ContentDecryptionModuleResult with promises

Since ContentDecryptionModuleResult objects are often used to return
promises, add ContentDecryptionModuleResultPromise as a base class
that includes the promise and allow existing classes to only override
the complete() method that they expect to get called.

BUG=358271
TEST=existing EME tests pass

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

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