This patch moves all static initialization of GfxDriverInfo and DeviceFamily
classes to the point that they're actually used. It also converts all static
GfxDriverInfo arrays into nsTArray<GfxDriverInfo> so that they can be used
interchangeably with the downloadable blocklist.
This patch also introduces a new phase of blocklist checking called
BEING_PROCESSED, which is the status set when a blocklist check is currently
being processed. NO_INFO now only means that we have confirmed that a device is
not blocked.
Refactored Windows-specific code for blocklisting GPUs to GfxInfoBase so that it
could be re-used by every platform. Also enabled all downloaded blocklist code on X11 (Linux) and Cocoa (Mac)
but not yet on Android.
We want to be able to have a common implementation of GetFeatureStatus and
GetFeatureSuggestedDriverVersion that will load from a pref when it's been set
by a downloaded blacklist. This makes it possible.