Win32+Cairo: Dynamically load fonts for the UI to use

At present, this includes loading fonts from:
* The FontConfig APPSHAREFONTDIR folder e.g: share/fonts
* A subfolder in the user preferences folder, called 'ui-fonts'
  - e.g %APPDATA%\FontForge\ui-fonts\

This allows FontForge to bundle fonts that the user may not have so the UI
can be displayed properly - without installing new fonts to the user's system.

Additionally, the user may change the fonts used *without needing elevated
permissions* because fonts can also be loaded from their preferences folder.

Fonts are loaded privately for FontForge to use, and will be unloaded when it
exits.

Win32+Cairo: Load from the FontConfig APPSHAREFONTDIR folder instead of pixmaps

Win32+Cairo: Also add font loading from user preferences folder

e.g %AppData%\FontForge\ui-fonts\

Win32+Cairo: Scan directory once and manually match extensions

Win32+Cairo: Fix typo in font loader

Win32+Cairo: Runtime check for Cairo usage