Split PrefHashStore into PrefHashStore and PrefHashStoreTransaction.

All a PrefHashStore can now do is hand off PrefHashStoreTransactions.

PrefHashStoreTransactions are used to determine the scope of a series of updates to the PrefHashStore and do one-time computation at the end when required.

This change is aimed in particular at updating the hash_of_hashes only once at the end of a series of updates to multiple hashes rather than recomputing it every time a hash is stored in that serie.

BUG=340540
R=bauerb@chromium.org, erikwright@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249843 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 249843
TextRenderer only pushes new cues downstream

The TextTrack subsystem in Blink unconditionally satisfies a request
to add a new text cue to the text track cue list, relying on the
upstream demuxers to filter out cues that have already been added to
that list.

The TextRenderer now manages a map of time range objects, to keep
track of which cues (based on their start times) have already been
pushed downstream prior to the current seek.

BUG=230708

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249845 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 249845