Fix syncing of sessions. Numerous changes have been made. Currently, the model associator does not have a local model to associate with, but instead contains a buffer of protobuf specifics for foreign sessions which gets completely overwritten everytime an update occurs. This buffer is then used to create a vector of foreign sessions for each foreign session handler. As a result, The model associator is slightly different from other datatypes.

The creation of a persistent unique machine tag needs to be resolved still. Something understandable by the user would be good (home, work, etc.), but for now we use the directory kernel's cache_guid. Unfortunately, this gets reset each time sync is enabled/disabled, resulting in stale client session info that remains visible.

BUG=30519
TEST=unit_test

Review URL: http://codereview.chromium.org/3825005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63266 0039d316-1c4b-4281-b951-d872f2087c98
16 files changed