Implement InterpolationMedium to filter animated images

Since r168759 we use bilinear filtering for animated images. There
are complaints about the drop in image quality. However we don't want to
spend a lot of CPU cycles doing high quality animations for upscaling.
This change is a compromise for animated images: we do a cheaper
mipmapping for downscaling and bilinear for upscaling. There is a
noticable quality improvement.

This change implements InterpolationMedium for GraphicsContext. It used
to be equivalent to InterpolationLow and is now a higher quality option.
All GraphicsContext::drawSomething() methods have |useLowQualityScale|
removed. This gives a much cleaner code.

I also discovered/fixed a couple small issues with interpolation levels:
* It is apparent now that InterpolationDefault means InterpolationHigh
  on desktop and InterpolationLow on Android.
* Default for canvas elements used to InterpolationMedium but it
  really meant InterpolationLow.
* There is a bug for rendering images in canvas that InterpolationNone
  should be used but it has been InterpolationLow all along. I didn't
  fix in this change but added a FIXME.

The new interpolation level does not affect non-animated images. There
is no need to rebaseline any pixel test. I added a test GIF file that
loops two identical frames. This is used to test the image quality.

BUG=353251

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

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