[Mac] Fix new avatar button bugs

- the old profile button was too keen to update when the ProfileInfoCache
changed, and updated the incognito icon to the profile's avatar
- using the new avatar button, too many tabs overlapped the button
- leftover refactoring to do from https://codereview.chromium.org/117533002/

BUG=340246

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248610 0039d316-1c4b-4281-b951-d872f2087c98
sync: GU retry with less explicit TimeTicks logic

For reasons described in crbug.com/338016, I changed my mind on explicit
time tracking.  This is an attempt to clean up my mistake.

This new approach has the NudgeTracker keep track of the time when the
next retry GU is scheduled, and a flag that is set to true when we
should perform a retry GU at the next possible opportunity.  Before a
sync cycle, the NudgeTracker is provided with a TimeTicks::Now() value
and asked to update the flag accordingly.

This does a better job of ensuring the value of
NudgeTracker::IsRetryRequired() is consistent.  After this CL, we can
guarantee that its value will be the same before, during, and after the
sync cycle.  The previous implementation relied on a call to
TimeTicks::Now() in download.cc, so it did not have this property.

There is one tricky part to this patch.  We need to be careful that we
the call to RecordSuccessfulSyncCycle() after a sync cycle does not
overwrite pending retry state that may have been set by that sync
cycle's SyncSessionDelegate::OnReceivedRetryDelay() function.  To avoid
that problem, we store the value from that call in the SyncScheduler and
act on it only after we've updated the NudgeTracker's state when the
sync cycle is complete.

BUG=338016

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

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