Cull code unused as a result of the "tolerate inline images..." fix.

Remove code that's not used any more as a result of the previous
fix, plus some code that was unused anyway.
Improve PDF repair logic.

When we meet a broken PDF file, we attempt to repair it. We do this by
reading tokens from the file and attempting to interpret them as a
normal PDF stream.

Unfortunately, if the file is corrupt enough so that we start to read
from the middle of a stream, and we happen to hit an '(' character,
we can go into string reading mode. We can then end up skipping over
vast swathes of file that we could otherwise repair.

We fix this here by using a new version of the pdf_lex function that
refuses to ever return a string. This means we may take more time
over skipping things than we did before, but are less likely to
skip stuff.

We also tweak other parts of the pdf repair logic here. If we hit a
badly formed piece of data, clear the num/gen we have stored so that
the next plausible piece we get does not get assigned to a random
object number.
Bug 694585: Slow rendering of meshes

In the existing code for meshes, we decompose the mesh down into
quads (or triangles) and then call a process routine to actually
do the work. This process routine typically maps each vertexes
position/color and plots it.

As each vertex is used several times by neighbouring patches, this
results in each vertex being processed several times. The fix in
this commit is therefore to break the processing into 'prepare' and
'process' phases. Each vertex is 'prepared' before being used in
the 'process' phase. This cuts the number of prepare operations in
half.

In testing, this reduced the time for a (release build, generating ppm
at default resolution) run from 33.4s to 23.5s.
Bug 694585: Further improve mesh rendering times

Add a cached color converter mechanism. Use this for rendering meshes
to speed repeated conversions.

This reduces a (release build to ppm at default resolution) run from
23.5s to 13.2 seconds.
Add rebinding for fz_output.
Add rebinding for fz_streams.
Add rebinding for fz_devices and fz_documents

The SVG device needs rebinding as it holds a file. The PDF device needs
to rebind the underlying pdf document.

All documents need to rebind their underlying streams.