Refactor MediaLogRecord::Type

MediaLogRecord::Type contains multiple unrelated values, including log
levels, play/paused events, and a selection of video properties. This CL
breaks them out into categories and adds another enum for each category
with all the related fields there.

It also adds a new method to MediaLog for each entry in
MediaLogRecord::Type. There are now:
SetProperty<MediaLogProperty>(...);
AddEvent<MediaLogEvent>(...);
NotifyError(...);
AddMessage(MediaLogMessageLevel, std::string);
which create and add records.

Bug: 794255
Change-Id: I3f1f93d595d66d178b3b309f5696085015f4acc1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2006249
Commit-Queue: Ted Meyer <[email protected]>
Reviewed-by: Andrey Kosyakov <[email protected]>
Reviewed-by: Kentaro Hara <[email protected]>
Reviewed-by: Will Harris <[email protected]>
Reviewed-by: Frank Liberato <[email protected]>
Cr-Commit-Position: refs/heads/master@{#734724}
31 files changed