Upstream Android printing code.

With regards to the original downstream code, there are some differences:
* PrintintControllerComponent(Impl) are renamed to PrintingController(Impl)
* ChromeComponentFactory is renamed into PrintingControllerFactory
* Some obsolete documentation removed/updated.

More refactoring and tests will follow.

BUG=315229
TBR=vitalybuka@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235171 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 235171
Moving the VSyncProvider interface to ui/gfx from ui/gl

Custom implementations of the VSyncProvider (such as the Ozone provider) need
to inherit from VSyncProvider. However, these implementations leave outside of
ui/gl and would break deps. Moving the interface to ui/gfx would allow such
implementations to inherit the VSyncProvider interface.

BUG=

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235172 0039d316-1c4b-4281-b951-d872f2087c98
Cast:Switching PSNR calculation to use libyuv

Now that we have a libyuv dependency already, we might as
well use the libyuv metric calculation instead of our own.
This is less error prone, and will be it easier to add more metrics.

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

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