Add apply_as_mask operation

I had a need for an operator like this when I wanted to apply a circular layer mask to an image. I thought it might be useful for others too!

Starting with an image, you create a canvas of the same size with a white background. Then you 'colour in' bits of the new canvas black. Use `mask.apply_as_image(image)` to modify the mask replacing all black pixels with their respective image pixels.
I wasn't sure how transparent pixels were implemented when the background colour was set to white. Agree with the configurable mask colour though!