svg external bitmap

This patch enables saving bitmaps in svg as external files, so as to reduce output size and rendering costs, and allow easier post-processing of bitmaps.

Currently only DCT images can be saved as jpg, other images are still embedded in svg.

>However still I cannot see proofs that using merely object number is safe. 
One proof is poppler's xref table implementation I mentioned above:
Its xref table implementation is simply an array of entries indexed by object number (`Xref::entries` in poppler/XRef.h|cc), so there is no way multiple entries with same object number can co-exists.
In poppler, only the newest xref entry is picked up during the parsing of xref table, the old ones are just ignored; and `XRef::fetch(num, gen...)` returns null obj if you try to fetch an entry with type xrefEntryFree, or if the gen passed to `XRef::fetch()` doesn't match the one in `entries[num]` .