Initial surface aggregator implementation

BUG=334876

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247598 0039d316-1c4b-4281-b951-d872f2087c98
[sync] Eliminate Await*SyncCompletion methods in integration tests

For the longest time, the sync integration tests have relied on methods
that wait for sync cycle completion by polling various internal fields
in the sync session snapshot. These methods are brittle and rely on
internal state, which is not ideal.

This cl is a first step towards eliminating the use of internal state to
detect sync completion. It does the following:

1) Removes the methods IsDataSynced, IsFullySynced, IsDataSyncedImpl,
   AwaitDataSyncCompletion and AwaitFullSyncCompletion
2) Adds a method AwaitSyncSetupCompletion which waits until a client is
   ready to push local changes to the server.
3) Adds a method AwaitCommitActivityCompletion which waits until a client
   no longer has data to commit and its progress markers are updated.
4) Updates call sites to use the new methods.

BUG=94990,97780,323380
TEST=sync_integration_tests
R=rlarocque@chromium.org

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

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