Timeline: support huge traces backed by a temp file on front-end

- dump all icoming events to a temp file;
- discard arguments for large (>10K) object snapshots;
- introduce WI.TracingModel.ObjectSnapshot, a sublass of TraceEvent,
    that returns the snapshot asynchronously, fetching them from
    the backing file if needed;
- turn BufferedTempFileWriter into a DeferredTempFile, i.e. add
    read & remove operations deferred till the file is created;
- support random access (readRange) for TempFile and DeferredTempFile;
- flush all the pending strings at once while writing to
    DeferredTempFile as opposed to doing this in 10M chunks, so that
    buffer does not grow uncontrollably;
- make TempFile.write() accept array of strings, not just one string,
    since this is what underlying Blob() does and it's more efficient
    than doing an Array.join("");
- make LayerPaintEvent into a class that will fetch the picture from
    storage before uploading it to b/e;
- move DeferredTraingLayerTree to TimelineFrameModel, so it can work
    with ObjectSnapshots.

BUG=412709

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

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