Remove redundancy in the testing and loading of VFont fonts. Includes
improved setting of character map for using Wingding and Symbol fonts.
This is an alterative to D16123: Fix for T101481: 3D Text Objects Wingdings Font. Instead of duplicating the setting of the character map, this removes the redundancy that necessitates that duplication.
In a nutshell, current code has a public function (BKE_vfontdata_from_freetypefont) that loads the FreeType library, checks to see if a font is suitable, loads the font if so, then closes the library.
But the "check" (check_freetypefont) and the "load" (objfnt_to_ftvfontdata) does some of the same things. For example the face is created and closed in both. The complaint in T101481: Regression: Wingding type font doesn't load is because the "check" does not do all the same things as the "load".
This patch removes that redundancy and the chance of these functions getting out of sync. Aa new function is added that returns a face if the font is suitable, so does the testing. This way BKE_vfontdata_from_freetypefont can do both the checking and loading. This then removes some code, makes it easier to follow, does more tests, and improves comments.