Refactor the BrowserContextKeyedService component to be a layered component.

The motivation for this CL is to generalize the concept of
BrowserContextKeyedService in order to enable classes that are BCKS's to be
able to be shared on iOS, which cannot use or reference the content API. The
key insight is that browser_context_keyed_service.h does not actually
reference BrowserContext at all.

This CL does the following:
- Moves //components/browser_context_keyed_service to components/keyed_service
- Divides the keyed_service component into core and content targets
- Moves browser_context_keyed_service.h into the core target as keyed_service.h
- Makes KeyedService's destructor public to eliminate having to friend
  BrowserContextKeyedBaseFactory
- Moves dependency_* into the keyed_service_core target
- Moves everything else from the component (which actually references
  BrowserContext) into the keyed_service_content target
- Leaves forwarding headers in //components/browser_context_keyed_service to
  allow for updating clients incrementally in follow-up CLs

BUG=350708
TBR=jochen

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256425 0039d316-1c4b-4281-b951-d872f2087c98
Eliminate roundtrips to PNG format when getting dominant image color.

This cleans up several places where we were encoding an SkBitmap as a
PNG, passing it to color_utils::CalculateKMeanColorOfPNG(), which then
decodes the PNG back to an SkBitmap and finds the dominant color.
Instead we can just use color_utils::CalculateKMeanColorOfBitmap().

This saves roughly 2ms on my Nexus 4 (3ms down to 1ms).

BUG=351180
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256426 0039d316-1c4b-4281-b951-d872f2087c98
Changes needed to support background content view at java layer.


Changes to propogate first non-empty paint to the java layer.

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

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