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.

The good thing of returning a `nullptr` here is that there'll be only one location to handle the exception and show the messages. The checking in `SplashBackgroundRenderer` is merely for safety.