Reland 253509 - ProfileKeyedAPIFactory to build instances with BrowserContext instead of Profile.

The build broke the first time because of a merge conflict.

This also updates a few call sites that were missed earlier, and it includes profile.h where it was previously gotten transitively.

BUG=309909
TBR=sky@chromium.org

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

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

The SingleClientStatusChangeChecker is an instance of
StatusChangeChecker that keeps track of its own ProfileSyncService
pointer, rather than relying on the ProfileSyncServiceHarness' copy.

This leads toward a world where StatusChangeCheckers can be used without
a ProfileSyncServiceHarness.  That change is still a few CLs away.

This CL also removes two unused functions from the
ProfileSyncServiceHarness.

BUG=323380

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

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