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.

Yes, it was inconsistent. I didn't mean local change, I mean could you add that to this PR? You can make the option if you like, but ok otherwise.

I was actually worried about the usage of `image5` in your case, now I understand it's in cairo and probably we cannot control it. Thanks.

Rvalue reference is basically a mechanism to tell the compiler that the old value is not used any more, so for `std::string` or `std::vector`, which holds a pointer to the actually data internally, the compilers are now clever enough to copy the pointers instead of the content.