Add support for the object-fit CSS property.

This is hidden behind an "experimental" runtime flag named
"ObjectFitPosition". Once object-fit's "sister" property, object-position,
is implemented, the plan is to also put that behind this flag, too.

This is an implementation of object-fit as described in
http://www.w3.org/TR/2012/CR-css3-images-20120417/#object-fit

Object-fit is used to maintain the aspect ratio of replaced content
within its content box. All object-fit values except the initial one
('fill') will always ensure that the aspect ratio is retained, in
different ways (fit inside the content box, cover the content box, or
use intrinsic size). Painting is always clipped against the content
box, regardless of the 'overflow' property.

Video elements used to behave like 'object-fit:contain', while the
initial value is, as mentioned above, 'fill'. Therefore we need a
section for video in the UA style sheet.

Introducing RenderImageResource::intrinsicSize(). We cannot use
imageSize(), since it may return the extrinsic size for SVG images.

Parts of this patch (both code and layout tests) are based on work
originally done by Simon Fraser <simon.fraser@apple.com>.
See https://bugs.webkit.org/show_bug.cgi?id=52040

BUG=236331
R=pdr@chromium.org

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

Patch from Morten Stenshorne <mstensho@opera.com>.

git-svn-id: svn://svn.chromium.org/blink/trunk@156535 bbb929c8-8fbe-4397-9dbb-9b2b20218538