Merge M54: "Allow suspension prior to reaching kHaveFutureData."

This change rolls in a few changes:
- Removes DelegateState::PAUSED_BUT_NOT_IDLE state.
- Removes all blocks against suspending prior to kHaveFutureData.
- If suspended, triggers resume when prior to have kHaveFutureData
if the didLoadingProgress() timer reports true.
- Always notifies the delegate of DelegateState::GONE; this ensures
the idle timer is always restarted if we didn't quite get enough
data to reach kHaveFutureData.
- Fixes pause timer to handle newly supported background video;
which doesn't set a state of DelegateState::GONE

BUG=612909, 643383
TEST=new and updated unittests.

Review-Url: https://codereview.chromium.org/2289543005
Cr-Commit-Position: refs/heads/master@{#416431}
(cherry picked from commit e7120dcf27938c9604ec03b3b574e1b4b3bf6c28)

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

Cr-Commit-Position: refs/branch-heads/2840@{#451}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}
5 files changed