Fixed the differencing of images for the webagg/nbagg backends.

In #3552 I improved the ability to handle images with transparency in the webagg/nbagg backends. Unfortunately, in doing so, I managed to break the differencing mode by always clearing the existing image on the javascript side. This change fixes the issue by keeping track of the image mode in the backend and notifying the client of any changes (as a result of transparency appearing).
Is that a good thing? Personally, I'd sooner let the user know that they haven't given the right parameter so that they can change it as they are developing.