cbz: Use csize and usize fields from central directory.

Don't rely on the csize and usize fileds being set in the individual
entry headers.
Allow NULL callback functions in the mesh processor.

Let either or both of the 'prepare' and 'process' callbacks be no-ops.
Revise test-device; thresholding and exhaustive checking.

The original version of the test-device could characterise pages
as being grayscale/color purely based on the colorspaces used.

This could easily be upset by grayscale images or shadings that
happened to be specified in non-grayscale colorspaces however.

We now look at the actual shading and image color values, and use
a threshold value to allow for some measure of rounding errors in
color values that are in practice grayscale.
Performance improvement for test-device.

When we detect that a page is color, set the ignore image hint
to avoid us loading future images. The overhead on loading
images is not generally huge, except for JPEG2000 ones, which
currently require decoding at load time. This therefore saves
lots of time for such files.

Also, a tiny tweak to ignore page components with 0 alpha.
Clean some whitespace.
Add locale-independent number formatting and parsing functions.
Add fz_snprintf and use it for formatting floating point numbers.
Update MuJS thirdparty module.
Fix memory leaks in test_device.

We were failing to drop each pixmap after testing it, and to free
the test_device structure at the end of each run.