Fix 694085: Add UTF8 and UTF32 CMaps.

Remove obsolete Adobe-Japan-2 based CMaps.
Fix 694698: Support 32-bit values in CMaps.

Increasing the existing data structure to 32-bit values would bloat the data
tables too much.

Simplify the data structure and use three separate range tables for lookups --
one with small 16-bit to 16-bit range lookups, one with 32-bit range lookups,
and a final one for one-to-many lookups.

This loses the range-to-table optimization we had before, but even with the
extra ranges this necessitates, the total size of the compiled binary CMap data
is smaller than if we were to extend the previous scheme to 32 bits.
Fix stack overflow in fz_vfprintf.

Thanks to Triet Lai.