[Extensions] Implement activity log stream

This CL adds an event listener for extension activities and Polymer
components to display these activities in a list with new activities
being added to the end.

Users can start/stop and clear the stream using the start/stop button
under the tabs.

The current logic to fetch activities is to append new ones at the end
of the list and notify Polymer to update the UI. All this logic is
implemented inside the event listener. While performance can slow down
when there are thousands of activities within the stream, the stream is
still relatively performant for less than 1000 activities.

Performance enhancements, namely: using iron-list instead of dom-repeat
and batching Polymer updates for activities will be implemented in a
future CL.

UI enhancements and changes will also be implemented in a follow up CL.

Bug: 932768

How to test:
1) Run chrome with the --enable-extension-activity-logging command line
flag and navigate to the activity log page for an extension via the
details view or through chrome://extensions/?activity=<extension_id>

2) Click on the stream tab. Note that activity recording is on by
default.

3) Observe activities coming in from the extension.

Screenshots: in bug linked below.

Change-Id: I89fba5fd4020903b96ccf1f52663010fe14406a9
Reviewed-on: https://chromium-review.googlesource.com/c/1449155
Commit-Queue: Kelvin Jiang <kelvinjiang@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#634075}
21 files changed