Test for headers and library for FONTFORGE_ARG_WITH_LIBPNG()

Replaced pkg-config check with a check for headers and library.
./configure does a hard-stop if user specifies '--with-png' and there is
no library or developer files available. Fixed *.pc dependency list.
Missed adding to test != xno
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
Make menus only as wide as they need to be. Fixes #853

This stops menus from being annoyingly wide by calculating the menu width to be
max_item_text_width + max_hotkey_text_width + padding
Where padding is the minimum separation between item and hotkey text. This is
currently fixed at 12 units.
Merge pull request #1437 from jtanx/win32-loadable-ui-fonts

Win32+Cairo: Dynamically load fonts for the UI to use
Merge pull request #1438 from jtanx/menu-width

Make menus only as wide as they need to be. Fixes #853
Fix incorrect type-casting of signed to unsigned.

These incorrect type-casts were introduced by 3cb817b8.
Blindly type-casting to please the compiler is bad!
Merge pull request #1441 from jtanx/typecasting

Fix incorrect type-casting of signed to unsigned.
Don't call g_type_init for glib versions >= 2.35
Remove Win32 byte-order swapping in UniFromEnc

Reference: 513d4f79ed811dc44b8611aabfa9113276fd44a9
It seems that iconv has been updated since then, or something has changed so
that the correct value is returned without byte-order swapping.
Win32: Find GResourceProgramDir before InitSimpleStuff in scripting main
Merge pull request #1439 from jtanx/glib-version

Don't call g_type_init for glib versions >= 2.35
Merge pull request #1442 from jtanx/encoding

Remove Win32 byte-order swapping in UniFromEnc
Merge pull request #1443 from jtanx/win32-noui-init

Win32: Find GResourceProgramDir before InitSimpleStuff in scripting main
Update Ukrainian translation
Merge pull request #1448 from yurchor/translation

Update Ukrainian translation
Fix gettext message and typos
Merge pull request #1449 from yurchor/master

Fix gettext message and typos
Merge pull request #1432 from JoesCat/check_headers_and_libraries_2

Test for headers and library for FONTFORGE_ARG_WITH_LIBPNG()
Merge pull request #1436 from fontforge/ufo_libxml2_1

Standardize handling of glyph names for U. F. O. output.
Improve feature file loading performance.
Fix feature file languagesystem ordering.
Fix a possible crash related to removal of layers.