Bug 694900: Avoid valgrind problems when cmap tables fill up.

The test file on this bug:

  de53b4bd41191f02d01a3c39b4880fa8_asan_heap-oob_caba3c_9561_7427.pdf

includes a corrupt CMAP. When this is read into memory it produces
a CMAP where the table gets too large. This produces lots of warnings
from 'add_table', but the calls to add_table all assume that the
process completed fine, resulting in range entries being added
that point to nonexistent values.

The fix is to make add_table return a bool to indicate success or
failure, and to only add range entries if the add_table succeeds.

Thanks to Mateusz Jurczyk and Gynvael Coldwind of the Google Security
Team for providing the example files.