[vector-api] Remember rendered revision in ol.source.ImageCanvas

This comes from a problem found by @fredj.

Currently, in `ol.source.ImageCanvas`, the existing canvas is re-used if the resolution, pixel ratio, and extent match. The problem is that there is no way for the source to indicate that the underlying data has changed and that therefore the canvas should be re-rendered (i.e. that `canvasFunction` should be called again).

This PR ensures that `canvasFunction` is called if the source's `revision` property has changed. Recall that `revision` is incremented in `dispatchChangeEvent`.

@elemoine, I'm interested in your feedback on this.