Fix loaders for DW variable fonts.

This fixes several issues introduced with DirectWrite and onMakeClone.
The primary issue is that the font file loader and collection loader
need to remain registered until the last font using them is no longer
in use. Prior to onMakeClone this was just the original font, so
unregistration was simple. However, when cloning a new font is brought
into existence using the same loaders as the original. All clones need
to keep a reference to the loaders so that the last can unregister them.

In addition variable fonts complicated the concept of equality of fonts.
As a result when variable font support was introduced an Equal method
was provided to make comparison easier. Use it when available to avoid
issues when comparing two system fonts which differ only by their
variation design position.

Change-Id: I6aa8d8cc3240f1244d16f661f6fbfd17ff0f7412
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/288159
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
3 files changed