Common: improved extended WFN font support

WFN format permits having same symbol data (item) being used for any number of characters. Furthermore, the items may be stored in any order and non-sequentially (with some auxiliary data in between). It is unknown if there are any fonts created which took advantage of this opportunity, but it is valid case that should be handled.
Another problem is that the previous versions of AGS did not make any safety checks when loading or using WFN data. Because of this some font-making utilities could produce wrong format that would still be accepted by the engine. Unfortunately, there are already at least few games using such fonts (notably: "Heatwave" by Scavenger). They work with old engine simply by luck (bad characters not used, or do not use memory beyond main buffer).

This commit modifies the way WFN fonts are loaded, providing support for all possible format usage. Additionally it detects format errors and corrects bad characters, when possible.