Add schema synchronize step to module update process

For simple changes, adding tables, columns, and indexes or changing column attributes the changes are automatic during module update, and no additional scripting is required. For some cases, for example a column rename, the schema synchonizer cannot reliable distinquish between a rename or a drop of one column and an add of another. For these cases the preupdate script hook can be used to alter the table.

If defined, the onUpdate xoops_module_preupdate_(dirname) script  is called immediatly before the schema sync. This provides the opportunity to make any major database changes which might destroy data if left to the schema sync alone, such as table and column renames.
Fix issues introduced in recent conversion.
Add Patchwork UTF-8 support

This routine will help ensure that the core code is dealing with a consistent encoding (UTF-8) to prevent corruption. Also provides fallback rountines for the basic mbstring and iconv functions if those extentions are not loaded. This change gives us "Unicode all the way" from input to database to output.

Composer update is required for this change.

Also changed in composer.json:
- doctrine/dbal to new version 2.4.1 minor updates
- symfony/yaml locked to 2.3.5 as issues encountered in 2.3.6
Update for PHP 5.5 compatibility

Also added startTrace() and stopTrace() in Xmf\Debug. If xdebug extension is enabled, these allow simplified control of traces within Xmf.