B2A part 3, turn it on

This CL structures things as we want them to end up:

    - prefer B2A over TRC/XYZ
    - allow B2A in MakeUsableAsDestination(), but not WithSingleCurve()

I figured we might as well try this first, knowing either of these
optimisms might lead to the CL being reverted.  Could stick, who knows?

I don't trust CMYK destinations at all, but they don't work at all
today, so leaving it in work-in-progress state should be harmless.

I think the non-CMYK profiles look pretty good.  Some profiles are newly
able to be destinations, with some so-so roundtrips and some wonderful.
And other profiles that had both TRC/XYZ and B2A show diffs, some
improved, some regressed, and some essentially unchanged.  It's this mix
of results that has me cautiously optimistic... if this were way off,
we'd expect to see uniformly bad results.  :)

Quick notes on particular profiles:

    - sRGB_ICC_v4_Appearance.icc:       new dest, not great, not so bad.
    - sRGB_ICC_v4_beta.icc:             ditto... new, not great, not bad.
    - sRGB_v4_ICC_preference.icc:       new, near perfect!
    - BenQ_RL2455.icc:                  much improved over XYZ/TRC
    - Calibrated_A2B_XYZ_Mismatch.icc:  bad before, now worse.
    - Kodak_sRGB.icc:                   stays not-great

    - Upper_Left.icc:
      By far most interesting, with an XYZ PCS where the others all use
      Lab.  Flailing around with this profile is what lead me to invert
      encoding_factor for B2A, nothing more principled.  I'd like to
      even underflow those principles further, with an exhaustive search
      over what encoding_factor results in the best roundtripping for
      this profile, to see if that leads to any enlightenment.

Change-Id: I6798da59d23474d45ff5857760631af81c2d4098
Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/388596
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
19 files changed