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.

How will we change those error messages?

I think If returning null makes sense in some cases (like `getFallbackBackgroundRenderer()`), just let it do. If not (like `geBackgroundRenderer()`), throwing is more reasonable.