[Feed] Synchronize has content between scheduler and Feed.

Both the Feed and the host have redundant tracking of several fields.
The scheduler is forced into this because it needs to know some of these
outside of when ShouldSessionRequestData() is called. However, when this
method is called, we get authoritative versions of them from the Feed
library. This change adds synchronization logic to copy the Feed's
version of has content to the scheduler.

Additionally, the synchronization logic around outstanding requests is
updated to go both ways. Previously it only copied the being set state
over, and assumed the other direction wouldn't happen. This change was
made because we're trying to reduce the number of assumptions we are
making and measure things direction.

Also added metrics around syncing these two values.

Bug: 908963
Change-Id: I47303421d656e5c714e0a4e346e27ee8168bdfb8
Reviewed-on: https://chromium-review.googlesource.com/c/1480650
Commit-Queue: Sky Malice <skym@chromium.org>
Reviewed-by: Gang Wu <gangwu@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Cr-Commit-Position: refs/heads/master@{#634893}
4 files changed