Anisotropic mipmap fixes

1) when selecting a level scale, use max(scaleX, scaleY) instead of
  current sqrt(scaleX * scaleY)

2) track and apply non-uniform fixup scales

R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1617183004

Review URL: https://codereview.chromium.org/1617183004
diff --git a/src/core/SkMipMap.h b/src/core/SkMipMap.h
index b3e958d..bc6d154 100644
--- a/src/core/SkMipMap.h
+++ b/src/core/SkMipMap.h
@@ -11,6 +11,7 @@
 #include "SkCachedData.h"
 #include "SkPixmap.h"
 #include "SkScalar.h"
+#include "SkSize.h"
 
 class SkBitmap;
 class SkDiscardableMemory;
@@ -24,7 +25,7 @@
 
     struct Level {
         SkPixmap    fPixmap;
-        float       fScale; // < 1.0
+        SkSize      fScale; // < 1.0
     };
 
     bool extractLevel(SkScalar scale, Level*) const;