Add fz_new_png_from_pixmap

This accompanies the function formerly known as fz_image_as_png (now
renamed to fz_new_png_from_image).
Add scissor stack functionality to null device.

If the appropriate device hint is set, the null device will keep
a scissor stack. This saves duplicating code in every device.
Use the 'rect' param to fz_clip_path.

fz_clip_path takes a rect parameter, but all the callers of it use
NULL. In most cases they have a perfectly reasonable value that they
could pass to hand anyway. Update the code to pass this value, which
saves the need for the scissor stack keeping code to recalculate it.
SVG device: All gradient output (using images).
Rename the draw devices 'stack_max' member to be 'stack_cap'

For consistency with the rest of the code.
SVG: Add image mask clip support.